Konsole löschen (wieder leeres Fenster)
-
Ich nimm mal an, das wurde hier schon besprochen, aber leider geht die Suchfunktion nicht.
Da ich gerade für einen Vokabeltrainer ein Menü schreibe, möchte ich gerne, dass bei jedem Funktionsaufruf das Konsolenfenster gelöscht wird, damit ich ein Untermenü anzeigen lassen kann. Der Prof wusste leider nicht den genauen Befehl, meinte aber es wäre vom BS ... abhängig.Ich benutze WinXP und Visual Studio .net. Geht es damit und wenn ja, wie lautet die Syntax?
-
CLS (clearscreen)
-
'clearscreen': nichtdeklarierter Bezeichner
'CLS': Bezeichner wurde auch mit einer argumentbezogenen Suche nicht gefundenFunktioniert leider nicht. Bedarf es einer Header-Datei ?
-
... system("cls"); // oder? ...
Wobei ich dir - da du ja unter Windows arbeitest - eher raten würde den header "conio.h" zu inkludieren (Kein Standard!) und dann im Code an der entsprechenden Stelle clrscr(); zu schreiben.
Caipi
-
die meisten compiler haben aber nur noch eine abgespeckte conio.h
also rate ich zur durchsicht der dos/konsolen faq.
dort steht alles hervorragend aufgeschrieben. für alle fälle, alle compiler und für dos und windows.
bye
-
ja hiesse System("cls"); und man muss noch die cstdlib einbinden sonnst gehts natürlich auch mit conio... is evnt. sogar besser...
-
hallo, weder system ist gut, noch ist die conio überall vollständig (borlandmäßig) dabei.
wie wärs mal mit nem blick in die faq. dafür ist sie da.
(oh je.. wozu haben sich da menschen mühe gemacht.. für die katz *g*)
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum 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.
-
Caipi schrieb:
... system("cls"); // oder? ...
Ich glaub, ich muss mir echt noch was überlegen, dass das unterbunden wird.
Bitte missbraucht system() nicht für Systembefehle!!
Es gibt für alle Systembefehle entsprechende Funktionen als API! Und jede Alternative ist besser, schneller, ... als system(...).
-
AJ schrieb:
Caipi schrieb:
... system("cls"); // oder? ...
Ich glaub, ich muss mir echt noch was überlegen, dass das unterbunden wird.
#define system(arg) RUF_EINE_OS_SPEZIFISCHE_API_FUNKTION_AUF_DU_TROTTEL
AJ schrieb:
Bitte missbraucht system() nicht für Systembefehle!!
Mißbrauchen? Hat system sonst noch einen Zweck?
Moritz
-
audacia schrieb:
AJ schrieb:
Bitte missbraucht system() nicht für Systembefehle!!
Mißbrauchen? Hat system sonst noch einen Zweck?
Der Zweck von system() ist, dass man externe Programme aufrufen kann, aber nicht, um Systembefehle auszuführen. Dafür gibts Batch-Dateien!
-
AJ schrieb:
Der Zweck von system() ist, dass man externe Programme aufrufen kann
Dafür gibt es aber auch API-Funktionen, denen der Vorzug zu geben ist.
-
system() ist selten notwendig, system("cls") nie - von wegen "system() ist aber nicht betriebssystemspezifisch" - na und was ist dann "cls"?
Also API-Funktion verwenden! Ist auch viel schneller. Möglichkeiten dazu finden sich in der FAQ!
MfG SideWinder
-
audacia schrieb:
AJ schrieb:
Der Zweck von system() ist, dass man externe Programme aufrufen kann
Dafür gibt es aber auch API-Funktionen, denen der Vorzug zu geben ist.
Stimmt.
Wenn du allerdings dein Programm portabel halten willst, wirst du es brauchen :).
-
Nein auch nicht, portabel ist dann zwar die Funktion system(), aber bis der Parameter portabel ist...
MfG SideWinder
-
SideWinder schrieb:
Nein auch nicht, portabel ist dann zwar die Funktion system(), aber bis der Parameter portabel ist...
MfG SideWinder
Du sollst ja auch keine Systembefehle verwenden ;).
-
AJ schrieb:
SideWinder schrieb:
Nein auch nicht, portabel ist dann zwar die Funktion system(), aber bis der Parameter portabel ist...
MfG SideWinderDu sollst ja auch keine Systembefehle verwenden ;).
Auch ein Programmstart ist (meistens) nicht portabel:
system ("C:\\Programme\\EinOrdner\\MeinProgramm.exe");
-
audacia schrieb:
Auch ein Programmstart ist (meistens) nicht portabel:
system ("C:\\Programme\\EinOrdner\\MeinProgramm.exe");
Dann musst du ihn protabel machen.