为了账号安全,请及时绑定邮箱和手机立即绑定

读文本用fscanf,二进制些用fwrite,如果文本方式用fprintf么?

读文本用fscanf,二进制些用fwrite,如果文本方式用fprintf么?

C
慕尼黑5688855 2022-11-19 13:09:25
#include <stdio.h>#include <stdlib.h>main(){int i,num[10];FILE *fr,*fw;if((fr=fopen ( "in.txt","r"))==NULL){printf("can't open file: in.txt\n");exit(0);}if((fw=fopen ( "out.bin","wb"))==NULL){printf("can't open file: res.dat\n");exit(0);}for(i=0;i<10;i++){fscanf(fr,"%d",&num[i]);}for(i=0;i<10;i++)  fwrite(&num[i],sizeof(int),1,fw);fclose(fr);fclose(fw);}
查看完整描述

2 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

这样做会出错的. 
读写方式必须要统一,否则就会出错.
如果写用fwrite, 那么读必须用fread, 同时打开文件都要用二进制方式,即 wb和rb
如果读要用fscanf, 那么写就必须用fprintf, 打开文件时用文本方式,即w和r

查看完整回答
反对 回复 2022-11-24
?
GCT1015

TA贡献1827条经验 获得超4个赞

应该没什么错误。
写文件用fwrite或fprintf都可以,不论写二进制还是文本,两个函数都可以用

查看完整回答
反对 回复 2022-11-24
  • 2 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信