У меня возникли проблемы с продолжением istringstream в цикле while, показанном ниже. Файл данных также показан ниже. Я использую getline из входного файла, чтобы получить первую строку и поместить ее в istringstream lineStream. Он проходит через цикл while один раз, затем считывает вторую строку, возвращается к началу цикла и выходит, а не продолжает цикл. Я понятия не имею, почему, если бы кто-нибудь мог помочь, я был бы благодарен. РЕДАКТИРОВАТЬ: причина, по которой у меня есть это условие цикла, заключается в том, что файл может содержать строки с ошибочными данными. Поэтому я хочу убедиться, что строка, которую я читаю, имеет правильную форму, показанную ниже в файле данных.
while(lineStream >> id >> safety){//keeps scanning in xsections until there is no more xsection IDs
while(lineStream >> concname){//scan in name of xsection
xname = xname + " " +concname;
}
getline(InputFile, inputline);//go to next xsection line
if(InputFile.good()){
//make inputline into istringstream
istringstream lineStream(inputline);
if(lineStream.fail()){
return false;
}
}
}
Файл данных
4 0.2 speedway and mountain
7 0.4 mountain and lee
6 0.5 mountain and santa
fail()
возвращает true, когда вы не выполняете никаких операций, кроме построения (которое должно быть выполнено успешно)? - person Potatoswatter   schedule 12.12.2013