Это зависит от формата, который вы хотите представить данные в вашей программе. Один из способов - получить struct
с пользовательским оператором извлечения потока:
struct Data {
int val1; // just assuming int for the data-type
int val2;
};
std::istream & operator>>(std::istream& input, Data & obj) {
input.ignore(2, '('); // skip all including opening brace
input >> obj.val1;
input.ignore(2, ','); // skip comma
input >> obj.val2;
input.ignore(2, ')'); // skip closing brace
return input;
}
Как @Seth Carnegie демонстрирует в ответе на аналогичный вопрос , вы также можете использовать INT_MAX
, чтобы убедиться, что вы пропустили достаточно - однако, использование std::numeric_limits<std::streamsize>::max()
было бы еще лучше.
Затем вы можете прочитать все содержимое файла следующим образом:
std::vector<Data> all_data;
std::ifstream input_file("your_file.txt");
std::copy(std::istream_iterator<Data>(input_file),
std::istream_iterator<Data>(),
std::back_inserter(all_data));
Здесь - полный рабочий пример.