c语言中用fread读出和用 fwrite读入 文本文件中出现乱码

来源:百度知道 编辑:UC知道 时间:2024/05/11 23:07:34
题目:建立一个数组,存放5个整数,将这5个整数存放到文本文件source.txt中,然后从source中读出各个整数,并按从小到大的顺序排序,把排序后的结果保存到文件target.txt中

#include"stdio.h"
main()
{FILE *fp;
int i,j,t;
int a[5];
for(i=0;i<5;i++)
scanf("%d",&a[i]);/*读入5个数到数组中*/
printf("all the number");
for(i=0;i<5;i++)
printf("%d ",a[i]);/*输出数组中的5个数*/
printf("\n");
if((fp=fopen("source.txt","wb"))==NULL)/*打开一个文件,如果此文件不存在,则建立一个,如果此文件存在,检查是否出错*/
{printf("can not open this file\n");return;}
for(i=0;i<5;i++)
if(fwrite(&a[i],2,1,fp)!=1)/*将数组中的5个数据写到文件source中去*/
printf("file write error\n");
fclose(fp);/*关闭文件source*/
printf("read from source.txt");
fp=fopen("source.txt","rb");/*打开文件source.txt*/
for(i=0;i<5;i++)
{fread(&a[i],2,1,fp);
printf("%d ",a[i]

if((fp=fopen("source.txt","wb"))==NULL)表示你采用的是二进制的形式来写入文件
同理
fp=fopen("source.txt","rb");/*打开文件source.txt*/
表示你用二进制的形式来读取文件

使用二进制形式读取或写入文件,文件采用的是二进制形式保存,采用记事本打开后会出现乱码。