无法从文件中打印文本

时间:2013-09-20 14:29:58

标签: c++ file-io

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

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;
}

2 个答案:

答案 0 :(得分:1)

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

根据this

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();
}

答案 1 :(得分:0)

您是否检查了myfile.isopen()的返回值?也许该文件不存在或您没有读取权限。

哦,是的,我错过了 - 追加旗帜。应为ios::in