Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 17

Thema: Pascal Befehl clrscr für c

  1. #1
    Gast

    Question Pascal Befehl clrscr für c

    hallo,

    ich habe erst vor kurzem angefangen, C zu lernen, habe schon relativ viel Erfahrung mit Pascal, Perl und PHP. Ich würde nun gerne wissen, wie der Pascal Befehl clrscr zum löschen des Bildschirms in C aussieht.

    Danke für Eure Hilfe...Ulf

  2. #2
    Gast

    Post

    *hmm* soweit ich weiss gibt es in der "stamm-bibliothek" von C keinen vergleichbaren befehl;
    um die portierbarkeit zu gewährleisten glaube ich .. ( ;

    jakob

  3. #3
    Gast
    In Ansi-C ist das nicht definiert. Unter DOS ging das noch rel. einfach per ANSI-Zeichen (wenn die ansi.sys geladen war...) aber unter Linux...
    Wenn es wirklich wichtig ist nehme halt (n)courses, damit gehen so spielereien ;-)
    {und wie macht das dann die Sache?}
    Sion

  4. #4
    Gast

    Cool

    Hi!

    Ich möchte jetzt niemand mit meinen banalen Ideen verwirren - vor allem, da ich selbst viel in Pascal programmiere und von clrscr absolut überzeugt bin.
    Aber nichtsdestotrotz: Schreib Dir doch selbst 'ne kleine Funktion, die einfach die Anzahl der Zeilen (oder mehr), die auf einen Bildschirm passen, per printf ausgibt.

    z.B:

    .
    .
    .
    void myClrscr(){
    &nbsp;&nbsp;for(char i = 0; i < 25; i++){
    &nbsp;&nbsp;&nbsp;&nbsp;printf("\n");
    &nbsp;&nbsp;}
    }
    .
    .
    .

    ...oder so ähnlich.... es sind doch 25 Zeilen, oder?

    Ciao,

    djlauk

    ... ich hoffe, jetzt ist es eingerückt.

    [Dieser Beitrag wurde von djlauk am 29. Dezember 2000 editiert.]

  5. #5
    Gast

    Question

    >void myClrscr(){
    > for(char i = 0; i < 25; i++){
    > printf("\n");
    > }
    >}
    aber ist das nicht eine c-funktion??

    jakob

  6. #6
    Gast

    Post

    Hallo!

    Es wurde hier schon richtig angemerkt:
    Das Loeschen des Bildschirms stellt eine systemabhaengige und damit nicht portable Aktion dar. Daher ist fuer eine solche Aktion eine entsprechende Bibliothek notwendig, die nicht Bestandteil des ANSI C Standards ist.
    Geeignete Bibliotheken sind TERMCAP und CURSES (wie schon angesprochen). Dort findet man dann auch eine entsprechende Funktion. Anstelle von CURSES wuerde ich jedoch die NCURSES verwenden, eine etwas neuere und weitreichendere Implementierung, die auch Farben etc. unterstuetzt. Sie muesste einschliesslich umfangreicher Doku eigentlich Bestandteil fast jeder Linux Distribution sein.

    Beste Gruesse,
    Oliver

  7. #7
    Registrierter Benutzer
    Registriert seit
    12.12.1999
    Ort
    Landshut
    Beiträge
    80

    Post

    Hi
    Den Bildschirm kann man doch mit einem Aufruf von clear (unter Dos "cls")löschen

    #include <stdlib.h>
    main()
    {
    system("clear");
    }

    Gruß Rupert

  8. #8
    Gast

    Talking

    Vielen Dank für eure Hilfe - ich werd diie Vorschläge mal austesten

    Ulf

  9. #9
    Gast

    Post

    <BLOCKQUOTE><font size="1" face="Arial,Helvetica,Geneva">Zitat:</font><HR>Hi
    Den Bildschirm kann man doch mit einem Aufruf von clear (unter Dos "cls")löschen
    [/quote]

    Hallo!

    Das stimmt schon, allerdings 2 Punkte:
    1. system() ist immer sehr "teuer"
    2. die Shell, die Umgebung und das Terminal muessen das clear-Kommando unterstuetzen (was nicht immer der Fall ist.)

    Beste Gruesse,
    Oliver


  10. #10
    Gast

    Cool

    @jrk:

    Ich hab doch gesagt Funktion. Ich dachte, es ginge nicht darum, einen "Befehl" zu finden, sondern eine Lösung. Außerdem ist Clrscr glaube ich auch eine "Funktion" bzw. eine ohne Rückgabewert, also nach Pascal-Konventionen eine "Prozedur".

    @o.bildesheim:

    Was meinst du mit "teuer" ?

    Gruß,

    DJ

  11. #11
    Gast

    Post

    teuer: das patent für system (clear) liegt bei mir :-). jedes mal, wenn ich ein glas fallen lasse, machts klirr, und da sind doch wohl eindeutige verwechslungsgefahren !

  12. #12
    Gast

    Post

    spaß beiseite: mit "teuer" ist das öffnen einer shell und das starten eines betriebssystem-kommandos gemeint, das ist wesentlich laufzeitaufwendiger als der vorschlag einer internen lösung.

  13. #13
    Gast

    Question

    Hi,

    wieso definierst Du denn nicht einfach ein Makro mit Escape-Sequenzen?

    #define CLS printf(\033[2J)

    Da ich zur Zeit mehr mit Pascal mache bin ich mir gerade aber nicht sicher ob man nicht die ganze Sache in Anführungszeichen setzen muß.

    Gruß

    Stefan

  14. #14
    Gast
    Wenn dann mit Anführungszeichen:

    #define CLS printf("\033[2J")

    dann aber mit
    CLS;
    aufrufen! (
    Wäre eigentlich genial, wenn das Linux das so macht. Habe ja vorher geschrieben, daß das unter DOS so geht.

    Sion


    [Dieser Beitrag wurde von Sion am 08. Januar 2001 editiert.]

  15. #15
    Gast

    Post

    Moin,

    also bei mir geht das unter Linux (SUSE 7.0) tadellos, allerdings klappt das bei mir übers Eingabefenster in NT nicht? Und da heißt es immer die arbeiten alle mit dem POSIX-Standart.

    Stefan

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •