[英]Writing into a file in C++
我正在尝试使用fstream写入文件,但是我的代码无法正常工作。 您能帮我做错什么吗?
void mem_test()
{
fstream filepointer;
string buffer;
if ( filepointer.is_open() )
{
filepointer.open("test.t", ios::in | ios::out | ios::binary);
getline(filepointer, buffer);
getline(filepointer, buffer);
filepointer << "TEST!" << endl;
}
filepointer.close();
}
我的文件test.t(在Linux中读写文件的权限):
Example Line 1
Example Line 2
Example Line 3
Example Line 4
谢谢!
您正在实际打开文件之前检查文件是否已打开,因此应为:
void mem_test()
{
fstream filepointer;
string buffer;
filepointer.open("test.t", ios::in | ios::out | ios::binary);
if (filepointer.is_open())
{
getline(filepointer, buffer);
getline(filepointer, buffer);
filepointer << "TEST!" << endl;
filepointer.close();
}
}
无需先执行if ( filepointer.is_open() )
检查,在这种情况下,由于文件流尚未打开文件 ,该检查将始终返回false
,结果将无法执行if块中的代码(打开首先与您要检查的文件相矛盾的文件)。 因此,首先打开文件,然后再检查流状态是否有错误(即,使用if(filepointer.is_open())
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.