PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Stoppuhr



Darkmiller
02.11.2008, 17:35
Moin Leute,

ich hab mal wieder ein kleines Problem und zwar habe ich eine kleine Stoppuhr gescriptet und brauche eine kleine Hilfe. Ich will, das er aufhört zu zählen, wenn ich Enter drücke. Vielleicht könnt ihr mir ja helfen.

Hier mein Source-Code:



#include <iostream>
#include <stdlib.h>
#include <windows.h>
using namespace std;

void stopuhr()
{
int hour;
int min;
int sek;
while(!cin.get()){ // Hier liegt der Fehler!
if(sek == 60){
sek = 0;
min++;
}
if(min == 60){
min = 0;
hour++;
}
cout << hour << ":" << min << ":" << sek << endl;
Sleep(1000);
sek++;
system("cls");
}}

int main()
{
system("title Stopuhr");
system("color C");
stopuhr();
cin.get();
return 0;
}

]=-antr4xx-=[
02.11.2008, 17:55
http://www.cplusplus.com/reference/iostream/istream/get.html


int get();

int get();
Extracts a character from the stream and returns its value (casted to an integer).

Das Programm funktioniert so nicht, weil du immer wieder Enter drücken musst, damit das Programm weiterläuft.
cin.get() gibt das Zeichen das du eingegeben hast im Rückgabewert wieder.


while(!cin.get())
Hiermit wird überprüft, ob du '\0' eingegeben hast, und wenn dus eingegeben hast, wird das ausgeführt.

Ich glaube du kannst das nur per Multithreading lösen, was aber nicht mehr dem C++ Standard entspricht und auch plattformabhängig ist.

Ich hoffe, ich habe es ausführlioch genug erklärt, wenn nicht, poste noch einmal präzise was du nicht verstanden hast.

Darkmiller
02.11.2008, 18:03
jo danke, deine Erklärung war ausführlich genug, gibt es eine Andere möglichkeit mein Programm aufzubauen?

noctem
02.11.2008, 18:32
Interrupts:
http://www.embedded.com/story/OEG20010725S0105

:)