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

#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);
}

慕尼黑5688855
浏览 78回答 2
2回答

ITMISS

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

GCT1015

应该没什么错误。写文件用fwrite或fprintf都可以,不论写二进制还是文本,两个函数都可以用
打开App,查看更多内容
随时随地看视频慕课网APP