テキスト ファイルの読み取り時に fscanf が正常に動作しないという問題が発生しています。
私のテキストファイルは次のとおりです(すべての文字の前に[スペース]があります):
L 10,4
S 18,4
L 20,4
S 28,4
S 50,4
私がやりたいことは、各行を読み取り、値をメモリに保存することです。ただし、今のところ、while ループを使用するときに発生しているこの問題を解決したいだけです。基本的に 1 行に 2 つの出力が得られますが、その理由がわかりません。
これが私のコードです:
FILE *tFile = fopen(tracefile, "r");
int address, size;
char operation;
char comma;
printf("START \n");
while(fscanf(tFile, "%c %x %c %d", &operation, &address, &comma, &size) > 0){
printf("O: %c", operation);
printf("\n");
printf("A: %x", address);
printf("\n");
printf("C: %c", comma);
printf("\n");
printf("S: %d", size);
printf("\n");
}
printf("END \n");
fclose(tFile);
最後に、私の出力は
START
O:
A: 0
C:
S: 4195731
O: L
A: 10
C: ,
S: 4
O:
A: 10
C: ,
S: 4
O: S
A: 18
C: ,
S: 4
O:
A: 18
C: ,
S: 4
O: L
A: 20
C: ,
S: 4
O:
A: 20
C: ,
S: 4
O: S
A: 28
C: ,
S: 4
O:
A: 28
C: ,
S: 4
O: S
A: 50
C: ,
S: 4
O:
A: 50
C: ,
S: 4
END
助けてくれてありがとう。