2012-04-07 18 views
0

Ich habe etwas von einer Befehlszeile, wo der Benutzer 1 Buchstabe eingibt, und wenn der Benutzer mehr als 1 Buchstaben eingibt, nimmt das Programm den ersten Buchstaben eingegeben. Wie gehe ich über das tun dies, wie das, was ich tue, scheint nicht für mich zu arbeiten:Verwenden Sie scanf() für den ersten Buchstaben

char ans, *d; 

    Sequence *seq = [[Sequence alloc] init]; 

    while (k < 10) { 
     k++; 
     [seq generate]; 
     printf("%i. %s\n\n>>> ", k, [seq.full cStringUsingEncoding:NSUTF8StringEncoding]); 
     scanf("%c%s", &ans, &d); 

     NSString *input = [NSString stringWithFormat:@"%c", ans]; 
     if (input == seq.answer) { 
      correct ++; 
     } 
    } 

EDIT: Ich möchte nur klarstellen, dass die ‚d‘ Variable als Platzhalter verwendet wird, damit die Eingabetaste nicht registriert wird.

+0

, wenn Sie nur die ersten Buchstaben zu bekommen bedeutet, wie über die Verwendung von 'getch()'; – SenthilPrabhu

+0

'getch()' ist in 'conio.h', die ich nicht habe, weil ich auf einem Mac bin. – user700352

Antwort

Verwandte Themen