2016-07-29 32 views
-4

ich will, ist es so wieIst es möglich, zwei Eingänge verschiedener Datentypen in einem scanf() in c zu erhalten?

<char><number><number> 

den Befehl als Eingabe erhalten möglich es eine scanf() Funktion in c zu erhalten verwenden?

int i,j; 
char c; 
scanf("%c%d%d",&c, &i, &j); 
+6

'scanf ("% c% 1d% 1d", & c & i, &j);' – BLUEPIXY

+0

Ihr Scanf wird etwas anderes als 2 für j lesen. @BLUEPIXY Sie die richtige Art und Weise gab Ihre scanf zu schreiben. – Module

+1

'scanf (“ % C% 1d% 1d“, & amp; C, & i, &j);' 'printf ("C =% ci =% dj =% d \ n", c, i, j);' gibt mir '#./chksize.o' 'A12' ' C A i = 1 j = = 2' – meAbab

Antwort

0

Ich glaube nicht, das wird funktionieren, weil der Compiler, dass als etwas zusammen eher als ein Zeichen betrachten, und zwei ganze Zahlen, aber die Eingabe in diesem Format, dh zu nehmen, die Compiler zu verstehen, dass Sie ergreifen können, die gesamte Zeile als String und analysiert dann die Zeichenfolge, die den Charakter und die ganzen Zahlen

char a[1000],c; int x,y; 
scanf("%s",a); 
c = a[0]; 
x = a[1] - '0'; 
y = a[2] - '0'; 

auch @BLUEPIXY gab noch bessere Lösung für Ihr Problem zu extrahieren!

+1

'scanf ("% s ", a);' ist ungefähr so ​​sicher a 'bekommt (a) '. – chux