关于文件操作的问题,各位给点意见吧
要求是这样的:已知一个二进制数据文件中存放了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用得有问题,但是改了好多次,还是不行的。。
求助各位大师,不胜感激!!