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