读书人

二进制文件读取异常

发布时间: 2012-06-23 14:52:43 作者: rapoo

二进制文件读取错误
我用0-255的整数变成ascii码以二进制的方式保存到txt中,读取txt文件的时候,将ascii码变成整形读取,127以后的数据都变成负数,这是为什么,还有26这个数也是错的,求各位指教,有读取的代码最好。

[解决办法]
为什么不直接存取?转换成ASSIC码。标准ASSIC只能支持到127.IBM的拓展ASSIC才能支持到255呢
[解决办法]
使用的数据类型有问题。用unsigned int 或uint
[解决办法]
不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待

fopen("...","...b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了

[解决办法]

探讨

不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待

fopen("...","...b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了

[解决办法]
FILE *fp;
fp=fopen("d:\\1.txt","wb");
for(int i =0;i < 256;i++) fputc(i,fp);
fclose(fp);

读书人网 >C语言

热点推荐