Problem mit zufallsgenerator und time



  • Hi

    Ich will ein Programm schreiben was eine Zufalls Zahl auf dem Bildschirm ausgibt. Aber so das mann den Zufallsgenerator nicht mit einer zahl initialisieren muss sondern mit der Zeit. Ich habe es dann auch geschrieben aber wenn ich das Programm starten will kommt immer eine Fehler Meldung das long nicht in time_t umgewandelt werden kann oder so^^

    Ich habs dann mal bei www.codepad.org hoch geladen und da ging es einwandfrei....

    Ich benutze Visual C++ express Edition 2008.

    Der Code: http://codepad.org/MXDwROFK

    mfg wurstuk



  • Das Programm ist zwar vom logischen Ablauf nicht sinnvoll, aber es läuft unter Code::Blocks problemlos.

    zahl = rand()%15+1;
    


  • hmmmm ja... dann wird es wohl an Visual C++ express Edition 2008 liegen...

    Kannst du mir vllt mal den download link von Code::Blocks sagen?

    P.S. Das Programm ist auch noch nicht fertig ich wollte nur mal das mit dem Zufallsgenerator testen



  • ähm ich habe mir jetzt mal Code::Blocks runtergeladen und wenn ich ein Programm starte kommt immer am schluß vom Programm:

    "process returnt 0 (0x0) ececution time : 0.031 s"

    Was bedeutet das und wie kann ich das weg bekommen?

    mfg



  • Schonmal das Programm NICHT in C::B gestartet Schlaumeier ? 😃



  • wurstuk schrieb:

    aber wenn ich das Programm starten will kommt immer eine Fehler Meldung das long nicht in time_t umgewandelt werden kann oder so^^

    Du weisst aber, dass das kein Bug in MSVC++ oder ähnlich ist, sondern definiertes Verhalten der Sprache?

    Zeiger auf unterschiedliche Typen können normalerweise nicht implizit konvertiert werden (in MSVC++ 2008 ist time_t als long long definiert). Du kannst dafür aber reinterpret_cast benutzen oder gleich eine time_t -Variable deklarieren.

    Aber es ist natürlich angebracht, wegen eines Kompilierfehlers die IDE zu wechseln... 🙄



  • hmmmm sry kenn mich hald noch nicht so aus.... mach c++ erst seit 2 Wochen 😉

    @ FreakY<3Cpp: Schon mal den ersten Beitrag gelesen Schlaumeier?

    @Nexus: Ich hab jetzt einfach die Variable sek mit time_t deklariert und es klappt 😃

    Aber wie schon gesagt könnte mir vielleicht jemand sagen ob an meinem Code jetzt etwas überflüssig ist?

    #include <iostream>
    #include <iomanip>
    #include <string>
    #include <stdlib.h>
    #include <ctime>
    using namespace std;
    
    int main()
    {
    	long zahl;
    	time_t sek;
    	cout << "\nRaten Sie eine Zahl zwischen 1 - 15!\n";
    	time( &sek);
    	srand( (unsigned)sek );
    	zahl = rand();
    	cout << zahl;
    }
    


  • Abgesehen von

    #include <iomanip>
    #include <string>
    #include <stdlib.h>
    

    eigentlich nichts.

    Aber wenn du meinst, ob man das anderst lösen kann. Bestimmt, aber macht bei der Grösse nicht wirklich Sinn. 😉


Log in to reply