Zeit Stoppen



  • hi,
    ich würd gern die Laufzeit meines Programms messen, mein Buch hat da nen beispielquelcode:

    #include <iostream>
    using namespace std;
    #include <sys/time.h>
    int main()
    {
      timeval start, end;
      gettimeofday(&start, 0);
      //Inhalt deds programms
      gettimeofday(&end, 0);
      cout << start.tv_sec << ':' << start.tv_usec << endl;
      cout << end.tv_sec << ':' << end.tv_usec << endl;
    }
    

    krieg bei dev c++ aber ne fehlermeldung, dass die funktion gettimeofday undeclared ist! Muss ich noch was einbinden?
    ich hab schon viel versucht aber bisher ohne erfolg.
    Bin für jede hilfe dankbar
    mfg



  • Wenn du Unix benutzt kannst das einfach aus der Kommandozeile heraus machen:

    time mein_tolles_programm_tm
    

    Wenn du Boost hast, kannst du daraus Boost.Timer benutzen.

    Ansonsten sollte gettimeofday durchaus in sys/time.h sein. Hast du den Header denn überhaupt?



  • Der Code sieht eigentlich richtig aus,
    (du hast nur die Code-Tags en bissl falsch gesetzt 😉 )

    Dein Beispiel-Code bezieht sich jedoch auf ein Unix-System,
    du solltest also im Linux/Unix Forum posten.
    (@Mods: Bitte verschieben)

    Poste vll. mal die genaue Fehlermeldung.
    Ich hab so die Vermutung das er den Header garnicht findet.

    //EDIT

    krieg bei dev c++...

    Hab ich mich jetzt von dem Namen gnomecoder verwirren lassen,
    und du programmierst am Ende unter Windows?
    Dann dürfte klar sein warum du nen Fehler bekommst 😃



  • okay, codetags sind jetz richtig.
    Also is der code nicht für Windows?
    Wundert mich aber sehr, mein buch arbeitet sonst nur mit windows, bzw sonst funtz alles auf windows.
    Also was soll ich denn jetz tun?

    edit: @ filmor: was meinst du mit "Hast du den Header denn überhaupt?"



  • hier :

    Hatte ich mal für jemand anderes hier im forum geschrieben:

    #include <stdio.h>
    #include <time.h>
    #include <fstream>
    #include <iostream>
    #include <string>
    using namespace std;
    
    void umrechnen_und_ausgeben();
    int start_zeit();
    int ende_zeit();
    
    int main()
    {
         int warten;
         double differenz;   // Var in der die Diff gespeichert wird
         int start_time=start_zeit();
         cout <<"Lass dir Zeit: ";
         cin >>warten;
         int ende_time=ende_zeit();
         differenz = difftime (ende_time,start_time);    //diff wird ausgerechnet
         ofstream fout ( "Player_time.txt" );
         fout << differenz ;
         fout.close();
         umrechnen_und_ausgeben();
    
    }
    
    int start_zeit()
    {
         time_t start;
         time (&start);
         return start;
    }
    
    int ende_zeit()
    {
         time_t end;
         time (&end);
         return end;
    }
    
    void umrechnen_und_ausgeben()
    {
         ifstream file("Player_time.txt");
         char line[100];
         file.get( line, 100);
         file.close();
         int zeit;
         zeit = atoi( line );
         int stunden = zeit / 3600;
         zeit = zeit % 3600;
         int minuten =  zeit / 60;
         zeit = zeit % 60;
         int sekunden = zeit;
         cout <<stunden <<"   Stunden   " << minuten <<"   Minuten  " << sekunden <<" Sekunden " <<"\n";
    
         system("pause");
    }
    

    Jetzt brauchst du nur noch eine Player_time.txt in die wird die zeit dauer in sekunden geschrieben ,.. die funktionen kannst du nach Belieben ändern ist nur ein Bsp ...

    mFG TOa

    EDIT : Gewöhn dir das system("Pause") blos nicht an^^



  • danke werds gleich testen.
    nen kollege hat den code eben auf linux getestet, da funzt alles einwandfrei 😢
    Edit: thx, funzt, aber einen großen nachteil hat das ganze schon, man kann ja nur auf die sekunde genau messen, und das ist in manchen fällen sehr ungenau.
    Aber eins steht fest: ICH STEIG AUF LINUX UM 😃



  • Gnomecoder schrieb:

    Aber eins steht fest: ICH STEIG AUF LINUX UM 😃

    Freut mich zu hören.

    Aber darf man fragen wieso du dich Gnomecoder nennst
    wenn du unter Windows programmierst?
    Zumindest bei mir hat es den falschen Eindruck erweckt.



  • Also früher hieß ich immer GARTENZWERG ^^ ja und gartenzwerg auf englisch ist gnome, garden gnome, und irgwann hab ich mit dem proggen angefangen, dann hab ich mir den namen GNOMECODER ausgedacht^^
    soviel zur entstehung meines namens



  • Achso 😃
    Für mich als Linuxer hat gnome eine etwas andere Bedeutung


Anmelden zum Antworten