2016-04-27 2 views
1

Ich bin gerade dabei, zu lernen, OpenGL zu verwenden, und ich beginne eine Reihe von Tutorials von http://www.opengl-tutorial.org/.Was ist der Aufruf von "getchar()" nach dem Drucken eines Fehlers mit "fprintf"?

Im ersten Tutorial, sie beginnen main() mit dieser if-Anweisung:

// Initialize GLFW 
if (!glfwInit()) 
{ 
    fprintf(stderr, "failed to initialize GLFW\n"); 
    getchar(); 
    return -1; 
} 

ich, dass fprintf verstehe ein ungepufferte Druck ist, der für einen Fehler anzeigt Art des Standard ist. Und Return -1 macht auch Sinn. Aber warum sollte getchar() aufgerufen werden, nachdem ein Fehler angezeigt wurde?

Danke.

+2

Um zu verhindern, dass die Anwendung geschlossen wird, indem ich auf Benutzereingaben wartet, denke ich. –

+1

Mögliche Duplikate: [Pause Bildschirm bei Programmabschluss in C] (http://stackoverflow.com/questions/9386651/pause-screen-at-program-completion-in-c) – NathanOliver

+0

Es ist nur da, so dass Sie treffen müssen irgendeinen Schlüssel, bevor Sie fortfahren. –

Antwort

6

Es ist wahrscheinlich, weil die .exe ein Befehlszeilenprogramm ist. Ohne den Aufruf getchar(), wenn ein Benutzer einfach auf die EXE-Datei unter Windows doppelklickt und das Programm sofort einen Fehler erhält und beendet, sieht der Benutzer nur ein Fenster mit einer Eingabeaufforderung, das dann verschwindet und nicht mehr angezeigt wird Error. Warten auf Benutzereingaben gibt dem Benutzer eine Chance zu sehen, was passiert ist.

1

getchar() wird verwendet, um die Anwendung nach der Ausführung anzuhalten, um die Befehlszeile und die Ausgabe für den Benutzer sichtbar zu lassen.

Ohne getchar-Funktion würde die Anwendung sofort beendet und wenn sie von einer grafischen Benutzeroberfläche aus gestartet würde, wären die Ergebnisse/Fehler nicht sichtbar.

Verwandte Themen