c++ fstream对象的 write函数写不进数据!急!

CHwhoami 2015-06-10 07:44:57
这里是我写的一个测试代码:
#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行删掉以后修改一下就可以了,不知道为什么。
有没有别的判断文件是否为空的方式?
谢谢了!
...全文
675 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
iyomumx 2015-06-10
  • 打赏
  • 举报
回复
部分代码改成这样就行了
        file.get();
        if(!file.fail())
        {
            file.seekg(ios::beg);
            file.clear();
CHwhoami 2015-06-10
  • 打赏
  • 举报
回复
坐等!

64,670

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧