system("cls");



  • Hi zusammen,
    Mit dem Befehl "system("cls");" wird ja alles gelöscht und der
    Cursor startet wieder oben links. Ich hab da mal was ausprobiert:

    #include <stdio.h>
    #include <conio.h>
    
    int main()
    {
        while(1)
        {
            printf("a");
            system("cls");
            printf(" b");
            system("cls");
            printf("  c");
            system("cls");
        }
    }
    

    Wenn ich nun das Prog. ausführe, fangen die Buchstaben an zu blinken.
    Ich vermute, dass dieser Befehl eine enorme Zeit beansprucht bis er ausgeführt wurde.

    Gibt es keinen Befehl, der diese lange Zeit irgendwie umgehen kann, damit die
    Buchstaben aufhöhren zu blinken?

    MfG Ed



  • Das liegt daran, dass system() an sich so lange benötigt. Setze es nur dann ein, wenn es Sinn macht und missbrauche es nicht für so Dinge wie cls 😉

    So nun zum Eingemachten, wenn du für Windows programmierst, hilft dir die Konsolen-API weiter. Du könntest dir zB die clrscr()-Implementierung von http://ic.sidewindershome.net abschauen.

    Wenn du für Unix entwickelst ist ncurses das richtige Stichwort für eine Suche ;).

    Plattformunabhängig geht da nichts - aber das ist ja selbst system("cls") nicht - wird cls ja nur auf manchen Betriebssystemen als ClearScreen gewertet. Am nächsten eventuell als call lame service.

    MfG SideWinder



  • Ich proge im Moment mit dem gratis Bloodshed DEV-C++ Programm.
    Und dieser Befehl clrscr() funktioniert nicht.
    Deshalb musste ich auf das system("cls"); zurückgreifen.

    MfG Ed



  • Ich brauche einen Befehl der die Ausgaben an der Konsole speichert und den
    Curser wieder zurücksetzt, gibt's das?



  • @Edwin

    Nennt sich gotoxy() und ist beheimatet in der conio.h. Allerdings könntest du mit dem DEV-CPP pech haben (wie auch schon bei clrscr(); vielleicht solltest du mal Ausschau nach einem anderen Compiler halten).

    Ansonsten solltest du dir SideWinders Link anschauen. Dort solltest du eigentlich alles finden was du brauchst.

    Ne andere Möglichkeit wäre noch die WinAPI-Funktionen direkt aufzurufen, die sowas ermöglichen. Beim Suchen hilft dir die MSDN ;).

    Aber nun ab ins Konsolenforum, denn mit ANSI-C hat das nichts zu tun.



  • Dieser Thread wurde von Moderator/in AJ aus dem Forum ANSI C in das Forum DOS und Win32-Konsole verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Bei mir ist das problem das der vorherige buchstabe oder bei mir ein strichmensch zu schnell verschwindet und dann das nächste bild kommt wie kann ich das verlangsamen? Bitte hilfe



  • Hi,
    du suchst die Funktion Sleep:

    unsigned sleep_time = 1000; // 1000 Milisekunden .
    Sleep ( sleep_time ); // Programm pausiert eine Sekunde.
    


  • Big Brother schrieb:

    Hi,
    du suchst die Funktion Sleep:

    unsigned sleep_time = 1000; // 1000 Milisekunden .
    Sleep ( sleep_time ); // Programm pausiert eine Sekunde.
    

    Das findet man in der windows.h


Anmelden zum Antworten