不知数据在内存中是如何存放的,是二进制,还是ASCII形式,文件在磁盘上是二进制还是ASCII形式,这将关系到文件函数的使用,如:如果在内存中是二进制,用"W"的方式打开一个文件,然后用
fwrite()函数写文件,就会发生错误,如果在内存中是ASCII形式,用fwrite()就不会发生错误,不知我说的对不对,请指点……谢谢!
[此贴子已经被作者于2006-6-18 9:09:37编辑过]
/*以下在C盘根目录下生成两个数据文件
一个是ASCII码格式的data.txt文件
另一个是二进制格式的data.bin文件
内容是差不多的。但是前者可以用记事本
打开正常阅读,后者用记事本打开则会看
到一些令你费解的符号。
*/
#include<stdio.h>
main()
{
FILE *f1,*f2;
int i;
f1=fopen("c:\\data.txt","w");
f2=fopen("c:\\data.bin","wb");
for(i=1;i<=100;i++)
{
printf( "%d ",i);
fprintf(f1,"%d ",i);
fwrite(&i,sizeof(int),1,f2);
if(i%10==0) printf( "\n");
if(i%10==0)fprintf(f1,"\n");
}
fclose(f1);
fclose(f2);
}
运行结果如下:
202 253 215 214 181 216 199 242 118 115 186 205 208 179 202 192 189 231
解读(以第一个字为例)
202 253 为“数”的机内码,
分别减去160后得:42 93
这说明“数”位于42区93位。
[此贴子已经被作者于2006-6-18 10:25:48编辑过]