在读取文本文件时,我无法让 fscanf 正常工作。
我的文本文件是(每个字母前面都有[空格]):
L 10,4
S 18,4
L 20,4
S 28,4
S 50,4
我想要做的是读取每一行并将值存储到一些内存中。然而,现在,我只想解决我在使用 while 循环时遇到的这个问题——我基本上每行得到两个输出,但我不知道为什么。
这是我的代码:
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
谢谢你的帮助。