Если ваш формат останется таким же, как вы перечислили, и в именах переменных или значениях не будет пробелов, это можно легко сделать, используя комбинацию std::string
и std::istringstream
.Вы можете просто сделать следующее:
//assume we have an open ifstream object called in_file to your file
string line;
getline(in_file, line);
while (in_file.good())
{
char variable[100];
char value[100];
char equals;
//get rid of the semi-colon at the end of the line
string temp_line = line.substr(0, line.find_last_of(";"));
istringstream split_line(temp_line);
//make sure to set the maximum width to prevent buffer overflows
split_line >> setw(100) >> variable >> equals >> value;
//do something with the string data in your buffers
getline(in_file, line);
}
Вы можете изменить типы variable
и value
, чтобы они соответствовали вашим потребностям ... они не должны быть буферами char
, номожет быть любого другого типа при условии, что istream& operator>>(istream&, type&)
определено для типа данных, который вы хотите использовать.