文件操作是我不太熟悉的方面,在我照着教程输入输出时,发现文件可以创建,可以读出,但不能读入,即getline(filestream,s)一直失败,后来找到原因了,是因为文件被打开并读出了几行,需要关闭再打开才能读入。
#include <iostream>
#include <fcntl.h>
#include <string>
#include <fstream>
using namespace std;
int main()
{
fstream fileStream;
cout<<"程序启动"<<endl;
fileStream.open("a.txt",ios::app|ios::out|ios::in);
if (!fileStream.is_open())
cout << "打开文件失败!" << endl;
fileStream<<"张三"<<endl<<"李四"<<endl<<"王五"<<endl;
fileStream.close();
fileStream.open("a.txt",ios::in);
string s;
while (getline(fileStream,s))
{
cout<<"读取一行:"<<endl;
cout<<s<<endl;
}
fileStream.close();
return 0;
}
理论上文件打开关闭都需要判断,防止内存泄漏。