Ich bin ein Anfänger von C. Ich starte das C-Programm, aber das Fenster schließt sich zu schnell, bevor ich etwas sehen kann. Wie kann ich das Fenster pausieren?
Wie pausiert man in C?
CathyLu
du kannst Geben
getchar();
vor der Rückkehr von der Hauptfunktion. Das wartet auf eine Zeicheneingabe, bevor es das Programm beendet.
Alternativ könnten Sie Ihr Programm über eine Befehlszeile ausführen und die Ausgabe wäre sichtbar.
-
Ja, dann drücken Sie einfach eine beliebige Taste, um das Programm zu beenden und das Fenster zu schließen.
– Michael K
2. Februar 2011 um 0:21 Uhr
-
+1 für “von der Befehlszeile ausführen”, eine Fähigkeit, die heutzutage schmerzlich fehlt.
– Johannes Bode
2. Februar 2011 um 17:13 Uhr
-
@John – einverstanden, besonders wenn Ihr Programm auf der Konsole druckt, wäre es nur sinnvoll, es über die Befehlszeile auszuführen.
– Gavin H
2. Februar 2011 um 17:38 Uhr
-
Es hängt davon ab, an wen Sie verteilen. Wäre auch schön, wenn Sie den Unterschied zwischen einem Befehlszeilenaufruf und einem Doppelklick erkennen und entsprechend handeln könnten.
– Samie Bencherif
29. April 2019 um 14:27 Uhr
Wenn Sie nur wollen Verzögerung das Schließen des Fensters, ohne dass tatsächlich eine Taste gedrückt werden muss (getchar()
Methode), können Sie einfach die verwenden sleep()
Methode; es dauert die Menge von Sekunden Sie wollen als Argument schlafen.
#include <unistd.h>
// your code here
sleep(3); // sleep for 3 seconds
Verweise:
sleep() Handbuch
Unter POSIX-Systemen scheint die beste Lösung zu sein:
#include <unistd.h>
pause ();
Wenn der Prozess ein Signal empfängt, dessen Wirkung darin besteht, ihn zu beenden (normalerweise durch Eingabe von Strg+C im Terminal), dann pause
nicht zurück und der Vorgang wird durch dieses Signal effektiv beendet. Eine fortgeschrittenere Verwendung ist die Verwendung einer Signalerfassungsfunktion, die aufgerufen wird, wenn das entsprechende Signal empfangen wird, und danach pause
kehrt zurück und setzt den Prozess fort.
Hinweis: verwenden getchar()
funktioniert nicht, wenn die Standardeingabe umgeleitet wird; daher diese allgemeinere Lösung.
Ist es ein Konsolenprogramm, das unter Windows läuft? Wenn ja, führen Sie es von einer Konsole aus, die Sie bereits geöffnet haben. dh führen Sie “cmd” aus, wechseln Sie dann in Ihr Verzeichnis, in dem sich die .exe befindet (mit dem Befehl cd), und geben Sie dann den exe-Namen ein. Ihr Konsolenfenster bleibt geöffnet.
Akashbhatia
getch()
kann auch verwendet werden, die in conio.h definiert ist.
Das Beispielprogramm würde so aussehen:
#include <stdio.h>
#include <conio.h>
int main()
{
//your code
getch();
return 0;
}
getch()
wartet auf eine Zeicheneingabe über die Tastatur (nicht unbedingt die Eingabetaste).
-
Dies ist nur unter Windows. Unix hat keine conio.h
– Jerry Jeremia
3. Juni 2014 um 0:01 Uhr
Daniel Gell
Könnte man auch einfach verwenden system("pause");
-
Dies ist nur unter Windows. Unix hat keine conio.h
– Jerry Jeremia
3. Juni 2014 um 0:01 Uhr
r1cebank
Wenn Sie ein Konsolenfensterprogramm erstellen, können Sie system(“pause”);
-
@JerryJeremiah er sagte “Fenster”. Ich finde
pause
funktioniert auch unter Linux und Mac.– David Callanan
4. Januar 2018 um 11:31 Uhr