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

读文本用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贡献1534条经验 获得超8个赞

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

查看完整回答
反对 回复 4天前
?
GCT1015

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

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

查看完整回答
反对 回复 4天前

添加回答

举报

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