我正在尝试从我的目录中读取一个txt文件,这是我到目前为止。它的编译但没有打印。
char printFile() {
fstream file("proj1_test1.txt");
char file01;
char page[5][6];
file.open("proj1_test1.txt");
for(int i = 0; i < numOfRows; i++){
for(int j = 0; j < numOfColumns; j++){
file >> file01;
page[i][j] = file01;
//cout << page[i][j] << endl;
}
}
cout << "file loaded " << endl;
cout << file << endl;
file.close();
return 0;
}
我正在尝试阅读和打印的文件包含此
F F R R R
F F R R R
F F R R R
F F R R R
F F R R R
F F R R R
答案 0 :(得分:3)
fstream file("proj1_test1.txt");
打开文件。
file.open("proj1_test1.txt");
再次打开文件而不先关闭它。打开已打开的文件流会将文件流置于必须clear
的错误状态,然后才能读取或写入该文件流。
要修复:删除file.open("proj1_test1.txt");
警告:正在使用相对路径打开此文件。正如问题的评论中所指出的,程序不一定与可执行文件在同一位置运行。搜索词以获取更多信息:工作目录。如果在上述更正之后文件仍未打开,请确保程序正在与您要打开的文件所在的文件夹中运行。 getcwd
功能可能对此有所帮助。
建议:对任何流进行任何操作后(包括打开,阅读, 并写入)测试流状态以确保操作成功。例如:
fstream file("proj1_test1.txt");
if (file)
{
// do stuff with file
}
else
{
// failed to open. Warn user
}
阅读时你想要的东西
if (file >> page[i][j])
{
// read successful. can use page[i][j]
}
else
{
// read failed. Warn user
// do not use page[i][j]
}