Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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?

Geschrieben

<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.

Geschrieben

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

  • 3 Wochen später...
Geschrieben
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ß

Geschrieben

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.

Geschrieben

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

}

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...