c++ fstream对象的 write函数写不进数据!急!
这里是我写的一个测试代码:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
int n;
fstream file;
file.open("1.txt",ios::in|ios::out|ios::binary);
if(!file) //文件不存在
{
cout<<"sorry,文件丢失"<<endl;
system("pause");
}
else //文件存在
{
file.read((char*)(&n),sizeof(int));
if((file.eof())!=0)
{
file.seekg(ios::beg);
n=1;
file.write((char*)(&n),sizeof(int));
cout<<"添加成功!"<<endl;
system("pause");
}
else
{
cout<<"这是个空文件!"<<endl;
}
}
file.close();
return 0;
}
我的目的就是想往一个文件中写入一个整形的数据,然后我先进行了两次判断,先判断文件是否存在,然后我判断文件是否是空的,之前在网上看到说eof()函数是判断有没有读到文件结束符,所以我就在打开文件后又进行了一次读操作(在第16行),然后让文件指针移动到文件结束符,用eof()函数判断的。判断是空的,于是就让指针回到开头,但是write函数执行成功后,文本文件还是0KB,没有写进任何数据。我把第16行删掉以后修改一下就可以了,不知道为什么。
有没有别的判断文件是否为空的方式?
谢谢了!