我正在创建一个程序,在main()
中对fstream进行decalares,但在另一个函数open_file()
中打开它,并通过另一个函数print()
打印该文件。但似乎文件会在open_file()
结束时自动关闭,因为print()
没有显示输出。
这是我的代码。
#include <iostream>
#include <string>
#include <conio.h>
#include <fstream>
using namespace std;
void open_file(fstream &file)
{
string name;
cout << "Enter filename : ";
cin >> name;
file.open(name, ios::app);
file.seekg(0);
}
void print(fstream &file)
{
string temp;
while(!file.eof())
{
getline(file, temp);
cout << temp;
}
}
int main()
{
fstream file;
open_file(file);
print(file);
return 0;
}
答案 0 :(得分:0)
您以追加模式打开文件,这是一种写入模式而非读取模式。所以你打开文件只是为了写,而不是为了阅读。
另外,请勿使用while (!file.eof())
,否则它将无法正常运行。取而代之的是while (getline(...))
。