2016-12-21 2 views
0

Ich bin gerade dabei, C-Programmierung zu lernen und arbeite mich mit Code :: Blocks durch "Anfangsprogrammierung mit C for Dummies". Die erste Aktivität in Kapitel 7, Das Abrufen von Zeichen mit getchar() fordert uns auf, den Code genau so zu kopieren, wie er im Buch dargestellt wird. siehe unten:'C for Dummies' Funktion getchar() funktioniert nicht

#include <stdio.h> 

int main()  
{ 
    int c; 

    printf("I'm waiting for a character: "); 
    c = getchar(); 
    printf("I waited for the '%c' character.\n", c); 
    return (0); 
} 

Der Ausgang ich erhalte, ist:

I'm waiting for a character: 

jedoch nach dem Buch, die Ausgabe, die ich sollte werden sehen den ASCII-Wert des Zeichens ist. Es fragt dann, dass ich den %c Platzhalter zu %d ändere, um den Wert anzuzeigen, aber dennoch bekomme ich das gleiche Ergebnis wie vorher. Ich könnte den Code wahrscheinlich mit geschlossenen Augen rezitieren Ich habe es mal durchgesehen; Ich kann einfach nicht sehen, wo ich falsch liege.

Bin ich richtig im Denken, dass die getchar() Funktion nicht erkannt wird? Oder dass der Code nicht nach der ersten printf Anweisung gelesen wird? Jede Anleitung ist willkommen, denn ich möchte nicht weitermachen, bis ich das Problem verstanden habe.

+3

Nachdem Sie 'Ich warte auf ein Zeichen:', tippen Sie ein Zeichen? –

+0

Nein - es funktioniert gut - siehe http://ideone.com/AlgWkH – 4386427

+2

probiere 'printf (" Ich warte auf ein Zeichen: "); fflush (stdout);' – BLUEPIXY

Antwort

0

Bitte geben Sie eine beliebige Taste ein, dann zeigt 2nd printf das Ergebnis an. getchar() erwartet Eingabe vom Benutzer, Controller erreichen in der 2. Zeile & wartet auf Eingabe.