Countdown



  • Des weiteren ist "wait()" keine gute idee. probiere es lieber mit clocks, willst du wissen wie?



  • Hallo !

    printf ("\r%d\n",n);

    oder

    cout << '\r' << n;

    🙂



  • also ich hatte immer "cout" verwendet



  • Zugangsdaten vergessen schrieb:

    also ich hatte immer "cout" verwendet

    👍



  • Hi, da system("cls") auch Systemabhängig ist, würde ich folgende Sache nutzen:

    #include <windows.h>
    
    HANDLE stdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD xy;
    
    xy.X = 0; // X Coord
    xy.Y = 0; // Y Coord  :p 
    SetConsoleCursorPosition(stdOut,xy);
    

    Gruß Chris



  • @Foxx90
    Ganz ehrlich, ich verstehe deinen Code nicht ganz, erkläre doch bitte mal.



  • Foxx90 schrieb:

    Hi, da system("cls") auch Systemabhängig ist, würde ich folgende Sache nutzen:

    #include <windows.h>
    
    HANDLE stdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD xy;
    
    xy.X = 0; // X Coord
    xy.Y = 0; // Y Coord  :p 
    SetConsoleCursorPosition(stdOut,xy);
    

    Gruß Chris

    Der obige Quellcode ist echt top portabel du.

    MUAHUAHUAHUAHUA



  • Top Portabilität schrieb:

    Der obige Quellcode ist echt top portabel du.

    MUAHUAHUAHUAHUA

    Ich verstand das eher so: Weil system( "cls" ) schon unportabel ist, wieso nicht noch weiteren unportablen Code verwenden?!



  • @ David_pb:
    Ganz genau! system("cls"); ist schon unportabel außerdem ist doch besser systemcalls zu vermeiden odeR ?

    Also
    @Zugangsdaten vergessen :

    #include <windows.h> //<- Header
    
    HANDLE stdOut = GetStdHandle(STD_OUTPUT_HANDLE); //<- Hier bekommt man ein entsprechendes Handle 
    COORD xy; // Instanz von der Struktur COORD
    // SO bis hierhin ist erstmal die "Initialisierung" 
    
    /* Hier füllt man das Struct (x und y) */
    1. xy.X = 0; // X Coord 
    2. xy.Y = 0; // Y Coord  :p
    /* So und erst hier wirds interesant  :p */
    /* Hier wird der Cursor auf xy.X und xy.Y gesetzt */
    3. SetConsoleCursorPosition(stdOut,xy); 
    /* Wenn du z.B. hiernach cout benutzt, schreibt cout ab diesen Coords los ;) */
    
    /* So, wenn du immer wieder den Cursor setzen willst musst die S
    chritte 1-3 immer in einer Schleife ausführen, und 
    in deinem Fall immer die selben Werte bei xy.X und xy.Y*/
    

    Gruß Chris

    ps: Probiers einfach aus.. is ansich nich so schwer 😉



  • außerdem ist doch besser systemcalls zu vermeiden odeR ?

    hmm ja ... weißt du warum?
    1. Weil du damit Zeit verlierst (Programm muss erst geöffnet werden!), da "cls" ein Programm ist.
    2. Weil man etwas anderes als "cls" registriert habe könnte und das zu unvorhersehbaren Ergebnissen führt!


Anmelden zum Antworten