0

いくつかのデータを含む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]);

しかし、プログラムは動作を停止します。

4

1 に答える 1

2

いくつかの問題があります。1 つ目は、ポインターへのポインターを へのポインターに渡すことですfread。もう 1 つは、整数char、つまり文字列をバッファに読み込むことです。3 つ目は、buffer割り当てられておらず、メモリ内のランダムな場所を指していることです。4 つ目は、「文字列」を整数として出力することです。

整数を読み取りたい場合は、整数に読み取ります。

int value;
fread(&value, sizeof(value), 1, file);
printf("%d", value);
于 2013-05-15T16:26:17.153 に答える