【发布时间】:2016-07-10 02:18:17
【问题描述】:
这是我的代码,用于重复从用户读取三个由空格分隔的变量。输入的格式应该是 'char int int'(例如 b 3 3 )。我使用 scanf 函数的返回值来确保输入正好是三个变量。
#include <stdio.h>
int main(void){
int x, y, nargs;
char command;
while(1){
nargs = scanf("%c %d %d", &command, &x, &y);
printf("%d\n",nargs);
if(nargs != 3){
printf("error\n");
break;
}
}
return 0;
}
输入和输出:
g 4 4
3
b 3 3
1
error
第一行输入没问题。但是当我输入第二行时,它显示 scanf() 只从这一行读取一个变量。我的代码有什么问题?
【问题讨论】:
-
" %c%d%d"是快速回答。使用fgets()然后sscanf(buf, " %c%d%d",...更好。 GTG