こんにちは、gcc -Wall -std=c99 と a./out を使用して Linux でこの C プログラムを実行しています。警告/エラーは表示されません。しかし、ファイルから読み取った情報を印刷すると、クレイジーな出力が得られます。ファイルには次が含まれます。
A13
B99
C2
D2
E44
F32
G2
H9
出力は次のとおりです。
id: A
size: 171522370
id: C
size: 876939826
id: 4
size: 843516466
コードは
typedef struct record{
char id;
int size;
}record;
int main ()
{
record reg;
FILE *fp = NULL;
fp = fopen("idSize.txt", "r");
if ((fp = fopen("idSize.txt", "r")) == NULL){
printf("error opening file");
exit(1);
}
fread(®, sizeof(reg),1,fp);
while (!feof(fp)){
printf("id: %c\n", reg.id);
printf("size: %d\n", reg.size);
fread(®, sizeof(reg),1,fp);
}
fclose(fp);
return 0;
}
どんな助けでも大歓迎です!どうもありがとう