关于读取二进制文件
一个二进制文件里存有一些整型数据(不知道多少个),如何把他们都读取出来?
[解决办法]
如果只是整数的话,获取文件的长度,就知道多少数据了
[解决办法]
推荐使用WinHex软件查看文件或内存中的原始字节内容。
不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待
和
fopen("...","...b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了
[解决办法]
#include <stdio.h>int main(int argc, char* argv[]){ FILE* file; int data; file = fopen("1.dat", "rb"); if(file == NULL) { return -1; } while(!feof(file)) { fread(&data, sizeof(int), 1, file); printf("%d\n", data); } fclose(file); return 0;}