点羽染墨 2015-06-10 14:20 采纳率: 100%
浏览 1548
已采纳

这个程序为什么输出的是25个呢?

#include
#include
#include

using namespace std;
struct node
{
int x,y;
};
int main(){
FILE* f1 = fopen("in.dat","w");
node a;

for(int i = 0;i < 10000;i++){
    a.x = rand();
    a.y = rand();
    fwrite(&a,sizeof(a),1,f1);
}

fclose(f1);

f1 = fopen("in.dat","r");

int i = 1;
while(!feof(f1)){
    fread(&a,sizeof(a),1,f1);
    printf("%d\t",i++); 
}
cout << endl;

}

  • 写回答

7条回答 默认 最新

  • 零度永恒 2015-06-15 14:21
    关注

    feof()详细讲解

    看完这篇博文,再单步跟踪看看,你就会明白了。
    feof()宏是判断当前读取内容是否是-1来判断文件结束,这在二进制文件中并不可靠。而文件不指明打开方式的话,默认打开格式就是二进制格式。所以问题应该在这里。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图