vc++ srand(time(0)) nicht gefunden



  • bei Dev C++ geht alles wunderbar, naja fast, außer dass er mein Projekt nicht compiliert ohne ein fehler auszuschmeißen ,er macht es einfach nicht 😞

    egal nicht thema bei VC++ macht der ausdruck jedoch probleme:

    srand(time(0));
    

    und sagt dabei:
    1>d:\vc++ programme\keycreator vc++ build 2\keycreator vc++ build 2\keycreator vc++ build 2.cpp(480) : error C3861: "time": Bezeichner wurde nicht gefunden.



  • #include <ctime>
    


  • Meine Güte, wann lernst du endlich, dich über die verwendeten Funktionen, Klassen und Typen zu informieren? Das ist etwa das dritte Mal heute, wo ich dich darauf hinweise.

    Also nochmals Schritt für Schritt für dich:
    1. Suchen, wo der Fehler liegt.
    2. Herausfinden, dass time nicht bekannt ist.
    3. Überlegen, wie man vorgehen könnte, um den Header von time zu finden.
    4. Auf www.cplusplus.com nachschauen und time eingeben.
    5. Sehen, dass rechts oben in der Beschreibung der verwendete Header <ctime> steht.

    Bitte achte dich in Zukunft ein wenig darauf.



  • 1: danke
    2: passt zwar nicht ganz hier rein, aber das stürzt beim ausführen ab:

    for(vector<int>::size_type n = 1; n <= 26; ++n)
    {
        numbers.push_back(n);
    
    }
    int shufflemaster;
    
    if(randgen == 1)
                {
                    shufflemaster=generator;
                    }
    else shufflemaster = rand()%500;
    
    for(;shufflemaster>0;shufflemaster--)
    {
    std::random_shuffle(numbers.begin(), numbers.end()); 
    }
    int index = 1;
    int zahl = numbers[index];
    for (;index<=26;index++)
    {
        lettersaver[index]=numbers[index]; //<-- hier wird gemeckert
    }
    

    dev c++ meckert nicht, weil es das prog nicht mal compilieren will
    VC++ sagt: das es an der markierten zeile etwas nicht stimmt und bei dem anklicken erscheint:

    mysize= ??? | myres = ???
    [0] = Ausdruck kann nicht gewertet werden
    [1] = Ausdruck kann nicht gewertet werden
    [2] = Ausdruck kann nicht gewertet werden

    oben ist lettersaver aber als lettersaver [100];
    definiert.

    übrigens er bricht immer während des ausführens ab.



  • hab vergessen das umzuwandeln mit nem stream

    for (;index<=26;index++)
    {
        converting << numbers[index];
        converting >> lettersaver[index];
        converting.clear();
    }
    

    jetzt ist wieder Friede zwischen mir und VC++ 😃

    habs aber nur rausgefunden mit Dev C++, er hats dann doch noch kompiliert.
    und schrieb mir zeichen ins dokument. da wusste ich sofort, was zu tun war.
    Dev C++ ist ja doch gar nicht so schlecht.

    und an Nexus: es hat bei Dev C++ einwandfrei funktioniert, deshalb kam ich nicht auf einen header, und vermutete, dass es an VC++ oder dem Compiler liegt



  • der höchste index in deinem numers vector ist 25. 26 ist eins zuviel... 😞
    hättest du durch debuggen herausfinden können.

    und an Nexus: es hat bei Dev C++ einwandfrei funktioniert, deshalb kam ich nicht auf einen header, und vermutete, dass es an VC++ oder dem Compiler liegt

    Ja, klar. Oder vermutlich ist ein Fehler in der CPU. Solls geben...


Anmelden zum Antworten