Я пытаюсь прочитать плохо отформатированный текстовый файл, и, возможно, я делаю это неправильно, но, основываясь на документации getline, это звучало так, как будто он будет извлекать значения до тех пор, пока значения не будут значением разделителя (' ', в мое дело):
"Если разделитель найден, он извлекается и отбрасывается, т.е. не сохраняется и после него начнется следующая операция ввода. Если вы не хотите, чтобы этот символ извлекался, вы можете использовать вместо него member get."
Но по какой-то причине он ничего не возвращает много раз. Смотрите строки 604-607, все эти запятые в моем выводе — это возврат getline. Может ли кто-нибудь сказать мне, почему он возвращает пробелы 6 раз, прежде чем доходит до значения? Текстовый файл содержит только один пробел перед значением. Заранее спасибо. :)
Соответствующий скриншот: http://j.drhu.me/2011-09-07_1317.png< /а>
#include <iostream>
#include <fstream>
#include <string>
void CMuscleModel::LoadOpParams()
{
int i, j;
ifstream param("params.txt", ios::in);
if (param.is_open())
{
stringstream iss, isn;
string line, word;
i=0; j=0;
while (getline(param,line))
{
isn.clear();
isn << line;
if(i>27){
while (getline(isn,word,' ')) {
//LGma[i][j]=atof(word.c_str());
if(word == "SM"){
getline(param,line);
cout << line << endl << endl;
isn.clear(); isn << line;
getline(isn,word,' ');
int junk=0;
while (atof(word.c_str())==0){
junk++;
getline(isn,word,' ');
}
cout << atof(word.c_str()) << ", " << junk << endl;
}
if(word == "ST"){
cout << word << endl;
}
if(word == "BFL"){
cout << word << endl;
}
if(word == "BFS"){
cout << word << endl;
}
if(word == "MG"){
cout << word << endl;
}
if(word == "LG"){
cout << word << endl;
}
if(word == "RF"){
cout << word << endl;
}
if(word == "VM"){
cout << word << endl;
}
if(word == "VL"){
cout << word << endl;
}
if(word == "VI"){
cout << word << endl;
}
j++;
}
}
j=0; i++;
isn.clear();
}
}
param.close();
}
Ах, извините, что не включил код.
isn
? Я подозреваю, что вы пишете в негоisn << line;
, а затем считывается следующая строка кодаgetline(isn,word,' ');
- person Mooing Duck   schedule 07.09.2011