Вот мой код для повторного чтения трех переменных, разделенных пробелами от пользователя. Формат ввода должен быть «char int int» (например, b 3 3). Я использую возвращаемое значение функции scanf для обеспечения ввода в точности трех переменных.Возвращаемое значение 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 – chux