0

我正在尝试编写一个简单的程序,该程序将一次打印一行文本文件的内容。但是,每当我运行程序时,我都会得到一个空白屏幕。我确定我要读取的文件包含多行文本。关于为什么这不起作用的任何帮助都会非常有帮助。

bool show() {
    string line;
    ifstream myfile;
    myfile.open("tasks.txt", ios::app);
    while (!myfile.eof()) {
        getline (myfile, line);
        cout << line << endl;
    }
    myfile.close();
    return true;
}
4

2 回答 2

1

问题可能是您使用ios::app的是ifstream(输入流),这没有任何意义。

据此,_

ios::app:所有输出操作都在文件末尾执行,将内容追加到文件的当前内容中。This flag can only be used in streams open for output-only operations.

尝试这个:

std::string line;
ifstream myfile ("tasks.txt");
if (myfile.is_open())
{
    while ( getline (myfile,line) )
    {
        std::cout << line << std::endl;
    }
    myfile.close();
}
于 2013-09-20T14:36:26.210 回答
0

Did you check return value of myfile.isopen()? Perhaps the file isn't there or you don't have read permission.

Oh yes, I missed that - the append flag. Should be ios::in

于 2013-09-20T14:46:16.067 回答