【发布时间】:2013-05-15 15:54:59
【问题描述】:
我有一个包含一些数据的 bin 文件,我应该读取该数据并将其存储在变量中。问题是我不知道如何解析缓冲区中的数据。
FILE *file;
char *buffer;
//Abre o ficheiro
file = fopen("retail.bin", "rb");
if (!file)
{
printf("Erro ao abrir %s\n", "retail.bin");
return;
}
//Lê o conteúdo do ficheiro
while(fread(&buffer, sizeof(int), 1, file) == 1){
printf("%d", buffer);
}
fclose(file);
输出:53324477812552451219223312232012122211305213462334644247717440148531711811913243 34437515052573583
我想要的是能够分别访问每个号码。我试过了:printf("%s", buffer[0]);
但程序停止工作。
【问题讨论】:
-
您需要知道数据是如何写入缓冲区的。否则没有办法知道如何读取这些数据。
-
OT:从 OP 的来源来看,该程序在读取数据之前未将内存分配给
buffer指向的内容,因此会遇到未定义的行为。 -
char *buffer;---->int buffer -
printf("%d\n", buffer);
标签: c file parsing binaryfiles