2

我设法写入文本文件,但我的读取文件出了点​​问题。这是我的代码:

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
    string line, s;
    ofstream out_file;
    out_file.open("hello.txt");
    for(int count = 0; count< 5; count++)
    {
        out_file << "Hello, World" << endl;
    }
    out_file.close();

    ifstream in_file;
    in_file.open("hello.txt");
    if (in_file.fail())
    {
        cout << "File opening error. " << endl;
    }
    else
    {
        while(getline(in_file,line))
        {
            in_file >> s;
            cout << s << endl;
        }
    }
    in_file.close();

    system("Pause");
    return 0;
}

我设法将 5 次“Hello, World”写入文本文件。但是,当程序运行时,它只打印了 4 次“Hello”,第 5 行打印了“World”。从我的代码中,它不应该打印出“Hello, World” 5 次吗?有人可以指出错误在哪里吗?

4

2 回答 2

3
  while(getline(in_file,line))
{
    in_file >> s;
    cout << s << endl;
}

应该:

while(getline(in_file,line))
{
    cout <<line<< endl;
}

由于您从文件line中读取到s. 所以你应该在里面打印内容line

于 2013-05-28T12:59:44.343 回答
3

您阅读文件并使用 Getline 并使用运算符>>

你应该试试

while(getline(in_file,line))
{
    cout << line << endl;
}
于 2013-05-28T13:01:18.580 回答