当前位置: 代码迷 >> C语言 >> 讨论fwrite 和fprintf 的区别
  详细解决方案

讨论fwrite 和fprintf 的区别

热度:393   发布时间:2007-07-20 21:23:26.0
讨论fwrite 和fprintf 的区别

今编一程序如下,为什么fprintf函数有结果输出,而fwrite函数没结果输出,
这两个函数有什么区别?还望指点迷津,谢谢!

#include<stdio.h>
#include<stdlib.h>
void main()
{ FILE *fp;
int i,u[10];
if((fp=fopen("abc2","w"))==NULL)
{ printf("this file can not open \n");
exit(0);
}
for(i=0;i<10;i++)
u[i]=i*i+3*i+4;
for(i=0;i<10;i++)
{ printf("%d\n",u[i]);


/* fwrite(&u[i],sizeof(int),1,fp);*/


fprintf(fp,"%d",u[i]);



}
fclose(fp);
}

搜索更多相关的解决方案: fprintf  fwrite  函数  include  void  

----------------解决方案--------------------------------------------------------
fwrite可以写,整数写进去就是二进制的。
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

坚持到底
2007-07-20 13:53:48
yixian

等 级:新手上路
帖 子:12
专家分:0
注 册:2007-7-9
  得分:0 
以下是引用bhy521在2007-7-20 21:23:26的发言:

这样写就行了

#include<stdio.h>
#include<stdlib.h>
void main()
{ FILE *fp;
int i,u[10];
if((fp=fopen("abc2","wb"))==NULL)//这里用"wb"就是用2进制
{ printf("this file can not open \n");
exit(0);
}
for(i=0;i<10;i++)
u[i]=i*i+3*i+4;
for(i=0;i<10;i++)
{ printf("%d\n",u[i]);


fwrite(&u[i],sizeof(int),1,fp);


// fprintf(fp,"%d",u[i]);



}
fclose(fp);
}

这样就KO 了吧


----------------解决方案--------------------------------------------------------
fwrite 函数一般用于二进制文件的输入。因为它是按数据块的长度来处理输入的;
fprintf函数用于对磁盘文件的写操作,使用方便,容易理解。
----------------解决方案--------------------------------------------------------

Yixian 你好 用你给介绍的程序试了下输出的结果是 ,:J\p


----------------解决方案--------------------------------------------------------