Countdown
-
Also ich habe schon lange kein Konsolenprogramm mehr geschrieben, aber versuche es mal mit "gotoxy(x,y)".
Bei jedem Anzeigen des neuen Wertes (Zeit) schreibt er den Wert in die Zeile die du ihm angibst, eben mit "gotoxy(x,y)".
Beispiel: gotoxy(10,20)
Somit müsste sich auch der alte Wert überschreiben und "weg" sein.

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