关于文件操作的问题,各位给点意见吧
要求是这样的:已知一个二进制数据文件中存放了10个整型数据,将他们排序后存入另一个二进制文件中。
小弟的代码如下:
程序代码:#include <stdio.h>
#include <conio.h>
main()
{
int a[10], temp = 0, i = 0, j = 0, k = 0;
char filename1[80], filename2[80];
FILE *fp;//定义文件指针
FILE *fp1;
scanf("%s", filename1);//输入要读入的二进制数据文件名
scanf("%s", filename2);//输入存放排序结果的二进制文件名
if((fp=fopen(filename1,"rb")) == NULL)
{
printf("Input file open error!\n");
return 0;
}
for(i=0;i<10;i++)
fread(&a[i], sizeof(int), 1, fp);
fclose(fp);
fp1=fopen(filename2,"wb");//二进制写入文件
for(i = 0; i < 9; i++)
{
fwrite(&a[i], sizeof(a), 1, fp1);
}
fprintf(&a[9], sizeof(a), 1, fp1);
fclose(fp1);
/*输出结果的代码,请不要改动*/
if((fp1 = fopen(filename2, "rb")) == NULL)
{
printf("Result file open error!\n");
exit(1);
}
for(i = 0; i < 10; i++)
{
fread(&a[i], sizeof(int), 1, fp1); /* 读出数据 */
}
if( fclose(fp1))
{
printf("Result file close error!\n");
exit(1);
}
for(i = 0; i < 9; i++)
printf("%d ", a[i]);
printf("%d\n", a[i]);
return 0;
}
但是为什么运行了就死了,实在是不知道哪里出问题了。。
似乎是fread或者fwrite用得有问题,但是改了好多次,还是不行的。。
求助各位大师,不胜感激!!









