читать файл в C ++ - PullRequest
       3

читать файл в C ++

0 голосов
/ 28 июня 2011

Я пытаюсь прочитать список слов из файла в C ++.Однако последнее слово читается дважды.Я не могу понять, почему это так.Кто-нибудь может мне помочь?

int main () {

ifstream fin, finn;
vector<string> vin;
vector<string> typo;
string word;
fin.open("F:\\coursework\\pz\\gattaca\\breathanalyzer\\file.in");
if (!fin.is_open())
    cout<<"Not open\n";
while (fin) {
    fin >> word;
    cout<<word<<endl;
    vin.push_back(word);
}
fin.close();
}

Ответы [ 4 ]

4 голосов
/ 28 июня 2011

Ваше состояние петли отключено на один:

 while (fin >> word) {
    cout<<word<<endl;
    vin.push_back(word);
 }
2 голосов
/ 28 июня 2011

Вам нужно сделать:

while((fin >> word).good()) {
     vin.push_back(word);
}

Потому что fin >> word дает сбой, а вы его не проверяете.

1 голос
/ 28 июня 2011

Это не читается дважды.Это просто старое значение, так как fin >> word терпит неудачу.Вместо этого используйте

while(fin >> word)
{
  ...
}

.Он пытается прочитать и останавливает цикл в случае сбоя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...