char id;
int num, r;
if (argc != 2) {
printf("error\n");
exit(1);
}
FILE *file = fopen(argv[1], "r");
if (file == NULL) {
printf("error\n");
exit(1);
}
while ((r = fscanf(file, "%c\t%d", &id, &num)) != EOF) {
if(r == 2) {
printf("id: %c, value: %d\n", id, num);
}
else if (r!=2) {
printf("bad input\n");
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试阅读的文件如下:
我10
我12
d 10
d 12
(字符/整数是制表符分隔的).我的输出是:
id:i,价值:10
输入不好
id:i,价值:12
输入不好
id:d,值:10
输入不好
id:d,值:12
输入不好
我究竟做错了什么?如果文件格式不正确,则只应打印"输入错误".上面的文件演示了格式正确的文件.我不明白如何r == 2和r != 2同时(两种情况都以某种方式得到满足).