无法从文本文件中读取并存储到字符串中

时间:2014-02-04 00:55:16

标签: c++ debugging text-files iostream

我有一个文本文件

0 Po Tom Mr 123AlphabetStreet Netherlands Wulu 123456 D01 Malaysia SmallAdventure 231112 
0 Liu Jack Mr 123AlphabetStreet Italy Spain 123456 D02 Afghanistan TriersAdventure 030214

我正在尝试阅读txt文件:Form.txt,使用getline将每一行存储到变量foo

这是工作程序

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main()
{
   fstream afile;
   afile.open("Form.txt",ios::in);

   string foo;


    while (getline(afile,foo,'\n') );
    {
        cout<<foo
            <<endl;

    }

}

没有任何东西打印到控制台输出,我期待

0 Po Tom Mr 123AlphabetStreet Netherlands Wulu 123456 D01 Malaysia SmallAdventure 231112 
0 Liu Jack Mr 123AlphabetStreet Italy Spain 123456 D02 Afghanistan TriersAdventure 030214

相反,我得到

  

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:3)

while循环结束时有一个分号:

while (getline(afile, foo, '\n'));
//                               ^

这会导致执行提取,但仅在循环结束时foo被打印。最后一次提取不提取任何foo为空的原因,因此为空输出。