Ich muss eine Stoppuhr-Klasse in C++ schreiben. Die Art, wie ich dies versuche, besteht darin, eine Variable zu definieren, um Runden zu sparen ("Zeit" genannt) und eine bool
, mit der ich sehe, ob die Uhr gestartet oder gestoppt wird. Bei Eingabe einer char
sollte der Timer starten und time1
setzen. Wenn ein anderes Zeichen eingegeben wird, wechselt die bool
zu false
und setzt time2
und druckt dann time2-time1
. Dies sollte wiederholbar sein, bis 'n' eingegeben wirdStoppuhr-Klasse in C++
Ich bin auch nicht ganz sicher, ich verstehe, welche Zeiteinheit time_t ist. In meinem Code bekomme ich einen Rückgabewert von ± 40 Einheiten jedes Mal, wenn ich versuche, das Intervall zu messen von einer Runde, die ich vermute, ist die Laufzeit des Programms und nicht eigentlich die Zeit des Intervalls.
#ifndef stoppuhr_hpp
#define stoppuhr_hpp
#include <iostream>
#include <time.h>
class Stoppuhr{
private:
bool running;
clock_t time;
public:
void pushButtonStartStop() {
char t=0;
running=false;
time=0;
std::cout << "to start/stop watch please press a key, to end
clock type 'n' " << std::endl;
clock_t time1=0;
clock_t time2=0;
std::cout << time;
while (t!='n') {
std::cin >> t;
running= !running;
if (running) {
time1=clock();
}
else {
time2=clock();
time+=time2-time1;
std::cout << time << std::endl;
}
}
}
};
#endif /* stoppuhr_hpp */
In C++ sollten Sie '#include' nicht time.h. Die Einheiten von "time_t" sind in Sekunden für POSIX-kompatible Systeme. Die einzige Garantie des C++ - Standards ist, dass er in einem arithmetischen Typ definiert ist. –
Ich bin nicht mit diesen Funktionen vertraut, aber wenn ich Google über "time.h clock()" frage [der erste Vorschlag] (http://www.cplusplus.com/reference/ctime/clock/) gibt die Antwort . – Beta
Es ist eindeutig ein Hausaufgaben-Problem. –