Я знаю, что есть много ответов уже на то, как итерации ifstreams, но не из них действительно помогли мне найти решение.Iterate over ifstream
Моя проблема: У меня есть txt-файл, содержащий несколько строк данных. Первая строка txt-файла сообщает мне, как складывается остальная часть данных. , например, это мой TXT файл:
5 5 5
0.5 0.5 0.5
0 0 0
0 0 1
0 0 -1
0.5 1 0
0 0 -1 0
0 0 1 1
0 -1 0 1
1 0 0 3
0 1 0 1
...
так что это должно сказать свою программу, чтобы сделать
double a,b,c
inf >> a >> b >> c
в течение первых 5 строк
double a,b,c,d
inf >> a >> b >> c >> d
в течение следующих 5 строк и т.д.
Я думаю, я мог бы сделать это, используя getLine()
, а затем разбивая результирующую строку на каждом "", но мне было интересно, есть ли какой-нибудь «чистый» способ сделать это.
Не уверен, что вы просите. У вас проблема? Если так, то, что это? –
Получение строк с использованием ['std :: getline'] (http://en.cppreference.com/w/cpp/string/basic_string/getline) - хорошее начало. Затем вы можете поместить их в ['std :: istringstream'] (http://en.cppreference.com/w/cpp/io/basic_istringstream) и использовать обычный оператор ввода' >> 'для получения номеров строк. –
Вы делаете форматированный * line * input. Чтение каждой строки и обработок, это отформатированный макет, по тому самому определению, правильный способ сделать это. – WhozCraig