[Anfängerfrage] WhileSchleife mit Enter unterbrechen
-
Hallo,
ich hab eine Frage (bin noch Anfänger): Wie kann man während die WhileSchleife läuft die Enter-Taste ständig abfragen und wenn Sie gedrückt wird die Schleife Unterbrechen?
Dachte mir, dass es so geht ...... while(1) { ... if(UserPressEnter) // ?? { break; ... }
Aber was muss ich bei der If-Abfrage eingeben anstatt "UserPressEnter"?
Oder lässt sich das gar nicht mit If lösen?
Vllt. könnte man es ja in die While Bedingung setzen...... while(WaitForPressEnter) // Wenn es so geht, was kommt in die Klammer? { ... }
Kann mir jemand sagen, wie das gemacht wird?
mfg
tecno
-
Ich denke, dass das mit Mitteln des Standards (ANSI-C) nicht geht. Dafür benötigt man die WinAPI:
#include <windows.h> int main(void) { while( ! ( ( GetForegroundWindow( ) == GetConsoleWindow( ) ) && GetAsyncKeyState( VK_RETURN ) ) ); return 0; }
-
danke erstmal.
Aber:63: while( ! ( ( GetForegroundWindow( ) == GetConsoleWindow( ) ) && GetAsyncKeyState( VK_RETURN ) ) ) { ... }
da kommen jetz fehler aus meinem compiler (windows.h ist includiert);
63: Error: ´GetConsoleWindow´ was not declared in this scope
63: Error: expected primary-expression before ´)´ tokenwas stimmt da jetz nit?
mfg
tecno
-
^^ deine entwicklungsumgebung ist vielleicht zu alt. 'GetConsoleWindow' gibts erst seit win2000
-
hmmm ich benutz mingw ... vers. 5.1.6
geht des mit dem nicht?
und ich hab xp prof
-
Seltsam, in den letzten Wochen poste ich alle drei Tage diesen Link:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39320.htmlDafür benötigt man die WinAPI:
Wollt ihr mich eigentlich mit diesen ewigen Windows-Lobreden vertreiben? Wäre Win 7 besser als Vista, wenn sich keiner über Vista beschwert hätte?
-
RealC++ schrieb:
Ich denke, dass das mit Mitteln des Standards (ANSI-C) nicht geht. Dafür benötigt man die WinAPI:
#include <windows.h> int main(void) { while( ! ( ( GetForegroundWindow( ) == GetConsoleWindow( ) ) && GetAsyncKeyState( VK_RETURN ) ) ); return 0; }
Es gibt sowas wie einen 'Quasi Standard' dazu gehören gewisse Funktionen, die unter diversen Betriebssystemen laufen. Hier mal zum Testen:
#include <conio.h> #include <stdio.h> int main() { unsigned n = 0; puts ("Hit any key to enter the loop, hit enter to quit the loop."); _getch(); while (1) { while( !_kbhit() ) { printf ("%d\r", n++ ); } if ( 13 == _getch() ) { puts("\nEnter key pressed, looping stopped."); break; } } return 0; }
-
µngbd schrieb:
Seltsam, in den letzten Wochen poste ich alle drei Tage diesen Link:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39320.htmlDafür benötigt man die WinAPI:
Wollt ihr mich eigentlich mit diesen ewigen Windows-Lobreden vertreiben? Wäre Win 7 besser als Vista, wenn sich keiner über Vista beschwert hätte?
Gehen die Funktionen aus conio nicht ebenfalls nur auf Windows????
-
Gehen die Funktionen aus conio nicht ebenfalls nur auf Windows????
Nein. Und dein GetConsoleWindow() -- ob das auf einem Windows-Server ohne GUI verfügbar sein wird, schlage ich lieber gar nicht nach.
-
µngbd schrieb:
Gehen die Funktionen aus conio nicht ebenfalls nur auf Windows????
Nein. Und dein GetConsoleWindow() -- ob das auf einem Windows-Server ohne GUI verfügbar sein wird, schlage ich lieber gar nicht nach.
Nachschlagen?-Soll das ein Witz sein, oder wie? Gibt es bei dir Fenster ohne GUI?
Ausserdem nehme ich es dir absolut übel, dass du mir den Windows-Fanatiker anhängen willst. Ich interessiere mich nämlich genau überhaupt nicht für "Welches OS?", "Welche Sprache?", "Welche Bibliotheke?" und Konsorten. Ich benutze (als Hobby-Programmierer) einfach genau das, was mir halt als erstes einfällt und vor allem was einfach ist.
-
µngbd schrieb:
...GetConsoleWindow() -- ob das auf einem Windows-Server ohne GUI verfügbar sein wird...
windosen haben alle 'ne GUI, auch die server-versionen.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
;fricky schrieb:
windosen haben alle 'ne GUI, auch die server-versionen.
Ich hatte irgendwo gelesen, daß man das bei 2008 auch weglassen kann. Scheinbar hast du aber doch irgendwie recht:
http://www.symlink.ch/kolumnen/07/07/11/2211203.shtml
Aber vielleicht die nächste Version...