内容为数字的文本文件如何转化成二进制文件? (请高手指点,看我错在哪儿了)
在 d:\c\test.txt 中的内容如下:
01 02 03 04 05 06
07 08 09 10 11 12
02 03 04 05 06 07
.....
我想把这个文本文件中的数据,转化后保存到一个二进制文件 test.bin 中。
编了下面一段小程序,可是不知道错误出在那里了。没有得到自己想要的结果,
请各位高手多多指教!
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fp,*fp1;
char ch; int i,*p; p=i;
fp1=fopen("d:\\c\\test.bin","wb+");
fp=fopen("d:\\c\\test.txt","r");
while(!feof(fp))
{ ch=fgetc(fp);
if(ch!='\n'&&ch!=' ') /* 遇到回车换行或者空格都跳过 */
{i=ch-48; /* 修正ASCII 码的数字*/
printf("%d\n",i); /* 打印到屏幕,验证修正后的i值(此处输出显示是正确的)*/
fwrite(p,2,1,fp1); /* 将i值以二进制形式写入文件test.bin中(但是写入文件就不对了)*/
}
}
fclose(fp);fclose(fp1);
}