Hier ist mein Code zum wiederholten Lesen drei Variablen durch Leerzeichen vom Benutzer getrennt. Das Eingabeformat sollte 'char int int' sein (z. B. b 3 3). Ich verwende den Rückgabewert der scanf-Funktion, um sicherzustellen, dass die Eingabe genau drei Variablen ist.Rückgabewert von 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;
}
Eingang und Ausgang:
g 4 4
3
b 3 3
1
error
Die erste Zeile eingegeben wird, kein Problem. Aber wenn ich die zweite Zeile eingabe, zeigt scanf() nur eine Variable aus dieser Zeile. Was ist das Problem meines Codes?
'"% c% d% d "' ist die schnelle Antwort. Mit 'fgets()' und dann 'sscanf (buf,"% c% d% d ", ...' ist besser. GTG – chux