C语言文件输入输出函数fread,fwrite的使用注意事项

/* 直接输入输出函数:  
int fread(void*pointer,int size,int count,FILE*fp)
int fwrite(void*pointer,int size,int count,FILE*fp) 
pointer是一个指针,在fread函数中它表示存放输入数据的首地址;在fwrite函数中,它表示存放输出数据的首地址
size表示数据的字节数
count表示要读出的数据个数
fp表示文件指针 

*/
# include<stdio.h>
int  main()
{   
	FILE*fp;
    int iarray[6]={1,49,2,50,3,51},ia;
	 system("cls");
	//clrscr();
  if((fp=fopen("awe1.txt","w"))==NULL)
	{
		printf("Cannot open this file\n");
		return 0; 
	}
	else
	{
		fwrite(iarray,sizeof(iarray),1,fp);
		fclose(fp);
	}
	 if((fp=fopen("awe1.txt","r"))==NULL)
	{
		printf("Cannot open this file\n");
		return 0; 
	}
	else
	{
		while(!feof(fp)) 
		{
			fread(&ia,sizeof(ia),1,fp);
		    printf("%5d",ia);// printf("%5c",ia);
		}
		
	}
	fclose(fp);
	 
	
	 
} 

总结:
从结果看来,利用函数fwrite写入文件中的数据存储格式为二进制,利用fread函数读出。fwrite是将内存中的二进制数据直接写入文件中,而不发生字符转化,与格式化输入输出函数fscanf和fprintf是将内存中的二进制数据转化为ascii码后写入到文件,读出时又将码转化为二进制数。因此使用fwrite和fread效率会更高一些。
举个具体例子说明效率高的原因:
比如说整数103,它的二进制码为00000000 00110111,用fprintf格式化写入到文件中时,它要把103转为字符"103",然后把字符’1’,‘0’,'3’对应的二进制码写入到文件中,这样你打开文件看到的就是103了,fscanf正好这个操作顺序反过来,由于fwrite直接把整数103的二进制码存入文件,不经过上边那个转换过程,所以打开文件你看不懂是啥,如下图:
在这里插入图片描述
而且我们还可以看到,用fwrite更节省存储空间,你看上边存储整数103,fprintf要用3个字节,而fwrite仍然只需要2个字节即可,所以不仅时间效率高,而且空间效率也高

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值