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? Zitieren
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 Zitieren
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. Zitieren
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 Zitieren
Woodstock Geschrieben 17. Dezember 2001 Geschrieben 17. Dezember 2001 Kennst Du denn dafür noch was anderes? :confused: ? Bine Zitieren
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 Zitieren
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 Zitieren
Woodstock Geschrieben 17. Dezember 2001 Geschrieben 17. Dezember 2001 Hmm, ich kannte nur diese Möglichkeit (aus dem Buch aus dem ich lerne). Bine Zitieren
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! Zitieren
Woodstock Geschrieben 17. Dezember 2001 Geschrieben 17. Dezember 2001 Mit was programmierst Du denn? Bine Zitieren
-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 Zitieren
gajUli Geschrieben 18. Dezember 2001 Geschrieben 18. Dezember 2001 Formfeed ausgeben, putc('\f') oder so... Uli Zitieren
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ß Zitieren
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. Zitieren
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. Zitieren
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 } Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.