RavenX2 Geschrieben 17. Dezember 2001 Geschrieben 17. Dezember 2001 Hi, ich fang grade ganz frisch mit C++ an zu programmieren. Ich suche einen Befehl der mir in der Konsole wieder alles löscht. In Pascal hiess der clrscr; gibt es in C++ etwas vergleichbares?
Woodstock Geschrieben 17. Dezember 2001 Geschrieben 17. Dezember 2001 Ja, gibt es. Dabei handelt es sich um eine Escape Sequenz, wenn Du damit schon was anfangen kannst: cout << "\033[2J"; Ich denke das ist das was Du suchst. Bine
Klotzkopp Geschrieben 17. Dezember 2001 Geschrieben 17. Dezember 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von Woodstock: <STRONG>cout << "\033[2J";</STRONG> Ich befürchte, das wird nur mit geladenem ANSI.SYS funktionieren.
Woodstock Geschrieben 17. Dezember 2001 Geschrieben 17. Dezember 2001 Ja, da hast Du Recht. Jetzt wo Du das sagst, fällt es mir wieder ein, das ich damals sowas habe in eine Datei reinschreiben müssen. Weißt Du genau wo? Bine
Woodstock Geschrieben 17. Dezember 2001 Geschrieben 17. Dezember 2001 Kennst Du denn dafür noch was anderes? :confused: ? Bine
DocMabuse Geschrieben 17. Dezember 2001 Geschrieben 17. Dezember 2001 Äh, wie wäre es mit der Funktion "clrscr();" aus der <conio.h>? Das müsste funktionieren und dürfte etwas einfacher sein, oder? Grüsse! DocMabuse Daragon
Klotzkopp Geschrieben 17. Dezember 2001 Geschrieben 17. Dezember 2001 Das Bildschirmlöschen unter C ist ohnehin so eine Sache. C kennt keine Shells oder Konsolen, deshalb gibt es immer nur plattformabhängige Lösungen. Je nach Plattform kann es sein, dass es eine clrscr()-Funktion gibt. Die wird dann in der Regel in der conio.h deklariert. Das ist weder ein ANSI- noch ein POSIX-Standard, und Microsoft kennt das auch nicht. In einer Konsolenanwendung unter Windows kann man aber z.B. mit system( "cls" ); den Bildschirm löschen. Siehe auch: http://support.microsoft.com/default.aspx?scid=kb;EN-US;q99261
Woodstock Geschrieben 17. Dezember 2001 Geschrieben 17. Dezember 2001 Hmm, ich kannte nur diese Möglichkeit (aus dem Buch aus dem ich lerne). Bine
RavenX2 Geschrieben 17. Dezember 2001 Autor Geschrieben 17. Dezember 2001 Die Datei <conio.h> hab ich leider nicht, aber mit system( "cls" ); hats funktioniert. Besten Dank!
Woodstock Geschrieben 17. Dezember 2001 Geschrieben 17. Dezember 2001 Mit was programmierst Du denn? Bine
-bLuEtooTh- Geschrieben 18. Dezember 2001 Geschrieben 18. Dezember 2001 system("cls") hat nur das prob das es etwas langsam ist.. ich kenn selber aber keine bessere lösung
gajUli Geschrieben 18. Dezember 2001 Geschrieben 18. Dezember 2001 Formfeed ausgeben, putc('\f') oder so... Uli
mst Geschrieben 7. Januar 2002 Geschrieben 7. Januar 2002 Original geschrieben von RavenX2 Die Datei <conio.h> hab ich leider nicht, aber mit system( "cls" ); hats funktioniert. Besten Dank! Du hast du Datei conio.h nicht?? :confused: Bei Visual C++? Das ist recht seltsam, bei mir ist sie dabei. Mir ist auch neu das die conio.h Platform-abhängig ist. Seid ihr euch da sicher? Gruß
Crush Geschrieben 7. Januar 2002 Geschrieben 7. Januar 2002 Installiere den Compiler nochmal neu oder setze selber die Pfade, vermutlich sind die Dirs der Includes dem Compiler einfach nicht bekannt! Conio.h ist sogar auf meinem alten Amiga-C++-Compiler dasselbe, also wird das Standard sein.
Klotzkopp Geschrieben 8. Januar 2002 Geschrieben 8. Januar 2002 MS Visual C++ hat zwar eine conio.h, aber da sind einige Methoden, wie eben clrscr oder auch gotoxy nicht drin, die bei anderen Compilern vorhanden sind.
Crush Geschrieben 8. Januar 2002 Geschrieben 8. Januar 2002 Im Zweifelsfall entweder über int86(0x10, &inregs, &outregs) (REGS korrekt initialisieren) oder über Inline-Assembler kann man mit dem Video-Interrupt 0x10 (ah=6, cx=0 (=Startposition), dh=Zeilen, dl=Spalten (=Endposition), bh=7) den CLS ausführen. GotoXY wäre dann: (ah=2, dh=Zeile, dl=Spalte, bh=0 (Video-Page) und auch wieder INT 0x10,bzw. int86() aufrufen. Und kurz nochmal die Regs-Struktur: struct WORDREGS { unsigned int ax; unsigned int ab; unsigned int cx; unsigned int dx; unsigned int si; unsigned int di; unsigned int cflag; }; struct BYTEREGS { unsigned char al, ah; unsigned char bl, bh; unsigned char cl, ch; unsigned char dl, dh; }; union REGS { struct WORDREGS x; struct BYTEREGS h; }; angesprochen wird die Union über: REGS inregs; inregs.h.ah=irgendwas; inregs.w.bx=irgendwas; und dann heißt es halt: int86(0x10,&inregs,&inregs); Beim Inline-Assembler heißt es dann: __asm { pusha mov ah,6 mov cx,0 mov dh,24 mov dl,79 mov bh,7 int 10h popa }
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden