Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 15:08

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Automatisches schließen C++

Discussion on Automatisches schließen C++ within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
roloremo's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 134
Received Thanks: 9
Automatisches schließen C++

Es gibt ja anscheinend das Problem dass sich die Konsole manchmal direkt nach der ausgeführten Aktion wieder schließt, obwohl manche gerne noch das Endergebnis sehen würden.

Jetzt hab ich ein bisschen mit Google gesucht und bin auf das gestoßen:
Code:
#include <conio.h>
#include <windows.h>
...
{
void wait ();

    	// Leere Puffer
    FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
    	// Lese den nächsten Tastendruck
    getch();
}
Kann man das als adäquaten Ersatz für system("pause") nehmen? Es geht mir besonders um die PLattformunabhängigkeit und da ich erst gerade mit C++ angefangen habe hab ich da noch nicht wirklich die Ahnung von.

MfG
roloremo is offline  
Old 10/03/2011, 02:36   #2
 
BlackWu's Avatar
 
elite*gold: 4
Join Date: Nov 2008
Posts: 1,189
Received Thanks: 395
Quote:
Originally Posted by roloremo View Post
Es gibt ja anscheinend das Problem dass sich die Konsole manchmal direkt nach der ausgeführten Aktion wieder schließt, obwohl manche gerne noch das Endergebnis sehen würden.

Jetzt hab ich ein bisschen mit Google gesucht und bin auf das gestoßen:
Code:
#include <conio.h>
[B]#include <windows.h>[/B]
...
{
void wait ();

    	// Leere Puffer
    FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
    	// Lese den nächsten Tastendruck
    getch();
}
Kann man das als adäquaten Ersatz für system("pause") nehmen? Es geht mir besonders um die PLattformunabhängigkeit und da ich erst gerade mit C++ angefangen habe hab ich da noch nicht wirklich die Ahnung von.

MfG
?!
Edit:
Code:
#include <iostream>



void wait()
{
      std::cin.clear();
      std::cin.get();
}
int main(void)
{
      wait();
}
Sollte dein Problem lösen.
BlackWu is offline  
Old 10/03/2011, 12:35   #3
 
roloremo's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 134
Received Thanks: 9
Und was bedeutet das jetzt? Bin noch nicht so wirklich weit, vielleicht kannste mir ja mal die Funktionen erklären und ein Beispiel zeigen, zB an einem eifachen Hello World Programm
roloremo is offline  
Old 10/03/2011, 13:13   #4
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,227
Code:
#include "stdafx.h"
#include <iostream>
#include <conio.h>

using namespace std;


int main(int argc, char* argv) 
{
	printf("Hallo Welt !\n");
	cin.get();
	return 0;
}
XxharCs is offline  
Old 10/03/2011, 13:30   #5
 
roloremo's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 134
Received Thanks: 9
Quote:
Originally Posted by XxharCs View Post
Code:
#include "stdafx.h"
#include <iostream>
#include <conio.h>

using namespace std;


int main(int argc, char* argv) 
{
	printf("Hallo Welt !\n");
	cin.get();
	return 0;
}
Und da hab ich das Problem dass er "stdafx.h" nicht kennt oO
roloremo is offline  
Old 10/03/2011, 14:55   #6
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,227
Quote:
Originally Posted by roloremo View Post
Und da hab ich das Problem dass er "stdafx.h" nicht kennt oO
#include "stdafx.h" inkludierst du nur dann wenn du einen vorkompilierten header hast.
falls du leeres projekt machst, dann brauchst das #include "stdafx.h" nicht.
XxharCs is offline  
Old 10/03/2011, 15:49   #7
 
roloremo's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 134
Received Thanks: 9
Achso ok, danke
roloremo is offline  
Old 10/03/2011, 16:04   #8
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Quote:
#include <conio.h>
Quote:
Es geht mir besonders um die PLattformunabhängigkeit
Fällt euch was auf
xNopex is offline  
Old 10/03/2011, 16:23   #9
 
roloremo's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 134
Received Thanks: 9
Vielleicht dass es in Linux nicht funzt?
roloremo is offline  
Old 10/03/2011, 20:09   #10


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Doch, genau das.
Der C/C++ Standard ist unabhänhig, im Gegensatz zu system("").

Er meinte vermutlich, dass man so oder so auf anderen Plattformen neu kompilieren müsste, da natürlich eine .exe auf Linux nicht geht.
Kann ihn aber auch missverstehen

Im Grunde ist es aber immer falsch, eine Tasteneingabe zu erwarten, damit es auf bleibt.
Normalerweise öffnet man das Programm über die Konsole, dann bleibt das Fenster eh auf.

Um mal das zu tun, was die anderen nicht getan haben:

cin ist das globale Objekt für den Standard-Inputstream. Sprich, normalerweise die Tastatur. get ist eine Methode, die das Programm solange blockt, bis eine Taste gedrückt wird (bzw. korrekt, bis der Stream gefüllt wird).
clear ist eine Methode, die den Stream Buffer leert, sodass keine vorherigen Eingabe aus dem Programm die Funktion sofort abbrechen lassen.
Das geht, soweit ich weiß, auch mit cin.ignore().
MrSm!th is offline  
Old 10/03/2011, 20:27   #11
 
elite*gold: 0
Join Date: Mar 2008
Posts: 747
Received Thanks: 245
Er meint wohl eher das er die WinApi funktionen "FlushConsoleInputBuffer" und "GetStdHandle" benutzt.
Akorn is offline  
Old 10/05/2011, 18:50   #12
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Nein, erstens schreibst du in der Überschrift, dass du in C++ programmierst. Dann frage ich mich, wieso du einen C-Header inkludierst. Desweiteren ist conio.h kein Standard-Header. Näheres dazu bei Wikipedia und Co. Die Lösung, die ich auch bevorzugen würde, wäre in der Tat "cin.get()". Aber dann bitte nicht so:

Code:
#include <iostream>

int main(int argc, char* argv) 
{
	printf("Hallo Welt !\n");
	std::cin.get();
	return 0;
}
*kotz*

sondern so:
Code:
#include <iostream>
#include <conio.h>

int main(int argc, char* argv) 
{
	std::cout << "Hallo Welt\n";
	std::cin.get();
	return 0;
}
xNopex is offline  
Reply


Similar Threads Similar Threads
[HILFE] Automatisches Signaturenwechsel?
03/12/2011 - Off Topic - 5 Replies
Hey, ich brauch Hilfe ich hab das mal bei Giuryn (oder so) gesehen das sich seine Signatur ständig verändert. Nun möchte ich das auch. Wie geht das? Übrigens: ich rede nicht von .gifs!
Automatisches TextTool Programm??
03/11/2011 - Last Chaos - 6 Replies
Ich wollte mal fragen was ich für Kenntnisse haben müsste für ein Programm zu programmieren mit dem man z.B alle Waffen von Lvl 1-165 mit seiner Benutzer spezifischen Farbe ändern könnte?? Dieses Programm sollte dann das TextTool ersetzen wenn man seine Waffe ändern möchte oder Rüstung :) Lg
Automatisches Beenden
01/01/2011 - Combat Arms - 10 Replies
Hey Leute, erst einmal Frohes Neues Jahr. Ich hab mal ne frage ich spiele schon länger CA und mein Problem ist mein Combat Arms beendet sich nach ca 10 - 15 Games automatisch. Ich hab es früher so hingenommen aber da ich jetzt vermehrt Desert Thunder spiele, wird das Problem immer lestiger. Also wer kann mir Helfen.
Automatisches update auschalten?
10/29/2008 - Metin2 - 4 Replies
Hallo meine leiben freunde ^^ ich hab mal ne frage weiss jemand von euch wie man das automatische update bei metin ausschaltet ich will mir nemlich ein eigenes start menu machen und jedes mal downloaded der updater die alten daten neu und somit müsste ich vor jedem start das design neu einfügen und naja das is nich das ware xD Danke im voraus! :D
Automatisches Tastendrücken
03/11/2008 - Metin2 - 4 Replies
Ist es möglich Tastendrückbefehle in ein inaktives Fenster zu schicken? z.B ist es beim lvln nützlich wenn man einen eigenen Buffschami hat, aber leider muss man zum buffen immer wieder in das andere Fenster gehen... Also kann man machen das z.b die Taste 1 in das inaktive MetinFenster geschickt wird? Wäre nett wenn das wer machen könnte :D Danke :)



All times are GMT +2. The time now is 15:08.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.