PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bildschirminhalt unter Linux löschen



KRibel
05-01-2006, 09:42
Hallo!

Unter Windows gibt es eine Bibliothek <conio.h> die den Befehl clrscr(); hat.
Mit diesem Befehlt kann man den Bildschirminhalt im DOS Fenster löschen.

Wie funktioniert es unter Linux?

Danke.

Gruß

Konstantin

Caveman
05-01-2006, 10:16
Wie wäre's damit?

printf("\e[2J\n");

KRibel
05-01-2006, 11:05
Wie wäre's damit?

printf("\e[2J\n");

Danke.

Aber diese Lösung löscht den Inhalt vor meinem Programm.
und schreibt es anschließend enifach dran.

Gibt es eine Lösung wo der Inhalt gelöscht wird und das Programm oben in der Konsole ausgegeben wird?

Ich kann doch eigentlich den Befehl clear an die Konsole übergeben, aber wie?

Gruß

Konstantin

ninguno
05-01-2006, 11:38
und so?
printf("\e[2J\e[H");

KRibel
05-01-2006, 11:43
Hallo,

Vielen Dank an euch!!!
Hat mir geholfen.

Gruß

Konstantin

ninguno
05-01-2006, 11:52
wie hast du's jetzt gemacht? mit printf oder mit
system("clear");?

KRibel
05-01-2006, 12:21
ich habe es mit printf gemacht.

Gruß

Konstantin

Joghurt
05-01-2006, 12:32
Für weitere Infos:
man console_codes
Auch solltest du dir evtl. mal (n)curses anschauen.

smog_at
05-01-2006, 18:05
Hallo,

unter linux gibts auch so eine lib, du kannst dich für ncurses oder für slang entscheiden

Hiermal für NCurses:


#include <ncurses.h>

int main(int argc, char* argv[]) {
initscr();
printw("Hello World1\n");
getch();
clear();
printw("Hello World2\n");
getch();
endwin();
return 0;
}

und beim kompilieren dann einfach -lncurses anhängen

Lg smog_at

gorba
10-01-2006, 15:00
oder n signal, dass dir ctrl&l simuliert, kannst du aufrufen wo du wilst und bekommst den gleichen effekt

RHBaum
12-01-2006, 16:14
oder n signal, dass dir ctrl&l simuliert, kannst du aufrufen wo du wilst und bekommst den gleichen effekt
Unter windows/dos sicher nicht .... oder du bist in keiner win32/dos-console sondern in ner richtigen TerminalEmulation ^^
Also Tastendruck zu emulieren faend ich keine so gute idee ....
Notfalls kannst auch escape sequenzen schicken, da sollt es eine fuers bildschirmloeschen geben ...
Ob die bei jedem terminal gleich is, kenn ich mich ned so aus ....
besser schon ncurses oder so verwenden, weil wenns da unterschiede gibt, werden die sich die terminal-einstellungen auslesen und dioe richtige sequence schicken ....


Ciao ....

gorba
13-01-2006, 08:35
ach das is unter windows? sry hab nix gesagt! :D *rotwerd*

awehrm
14-01-2006, 21:23
@smog_at:

woher weiss man eigentlich wie die compilerflags heissen, die man anhängen muss?

Joghurt
14-01-2006, 22:46
Durch lesen der Anleitung und Erfahrung ;)

man gcc -lName linkt die Bibliothek libName.so bzw. libName.a ins Programm mit ein, wobei standardmäßig in /usr/lib und /lib und /usr/local/lib gesucht wird (die Verzeichnisse, die in /etc/ld.so.conf angegeben sind, IIRC) [nach einer Änderung von ld.so.conf muss ldconfig aufgerufen werden]

Weitere Verzeichnisse, in denen gesucht werden sollen, müssen mit -LVerzeichnispfad angegeben werden.

Die Reihenfolge der Verzeichnisse ist übrigens wichtig. Wenn libfoobar symbole von libbaz braucht, musst du -lbaz -lfoobar schreiben, nicht umgekehrt. In 99% der Fälle ist das aber egal, in welcher Reihenfolge du sie angibst.

Wenn du Funktionen aus math.h nutzt, musst du übrigens libm (math) mit einbinden, also -lm.