`j' undeclared (first use this function) kann mir jemand sagen was das bedeutet??



  • Hallo alle zusammen
    ich bin jetzt bestimmt eine 1/2 Stunde am googlen
    bin aber ziemlich erfolglos

    Also ich hab nur ein kleines testprogramm schreiben wollen, aber
    er zeigt mir dise fehlermeldung

    20 E:\Programme\Dev-Cpp\Projekts\main.cpp `j' undeclared (first use this function) 
      (Each undeclared identifier is reported only once for each function it appears in.) 
    20 E:\Programme\Dev-Cpp\Projekts\main.cpp `n' undeclared (first use this function)  
       E:\Programme\Dev-Cpp\Projekts\Makefile.win [Build Error]  [main.o] Error 1
    

    bei diesem Quelltext

    #include <iostream>
    #include <cstdlib>
    
    using namespace std;
    int main()
    {   
        int antwort;
        do
        {
              int z1, z2, z3;
              z1 = rand();
              z2 = rand();
              z3 = rand();
              cout<< "zufallszahl 1\t"<< z1 << endl;
              cout<< "zufallszahl 2\t"<< z2 << endl;
              cout<< "zufallszahl 3\t"<< z3 << endl;
              do
              {
                     cout<<endl<<"wiederholung?(j/n)";
                     cin>>antwort;
                     if((antwort != 'j')&&(antwort != 'n'))
                         cout<<"bitte geben sie j f\x81r ja und n f\x81r nein ein"<<endl;
              }while((antwort!='j')&&(antwort!='n'));
        }while(antwort=='j'); 
        return 0; 
    }
    

    an.

    liegt villeicht daran das ich noch nicht so die große programmierahnung habe
    aber ich denke es ist sinnvoller hier zu posten als noch weitere stunden in google zu verschenden (ich glaub ich such einfach falsch)^^

    *Der Code ist editiert und verbessert worden



  • Antwort soll, soweit ich verstanden habe, ein Zeichen enthalten. Dafür gibt es den Datentyp char. Bei der Eingabe j oder n handelt es sich folglich um Variablen vom Typ char. j oder n müssen also in Anführungsstrichen geschrieben sein. Zeile 20 sähe demnach folgendermaßen aus:

    if((antwort != 'j')&&(antwort != 'n'))
    

    außerdem kommt nach dem if() kein Semikolon.

    mfg energetic



  • ja ich hab ein bisschen rumprobiert und anscheinend das Semikolon vergessen ^^
    und es fehlt auch noch das
    #include <cstdlib>
    ich danke für die promte Antwort

    ..und das Problem hat sich erledigt.. danke



  • outcast schrieb:

    und es vehlt auch noch das
    #include <cstdlib>

    Nein. Die If-Abfragen und der Datentyp char sind in der Sprache C++ verankert, da brauchst du keine zusätzlichen Bibliotheken. Zudem reicht <iostream> für deine Anwendung.

    Und was die Zufallsfunktion rand() betrifft: Wenn du nicht in jedem Programmdurchlauf die gleiche Folge von Pseudozufallszahlen haben willst, solltest du einmal am Anfang des Programms folgende Funktion aufrufen (benötigt den Header <ctime>):

    srand(static_cast<unsigned int>(time(0)));
    


  • Nexus schrieb:

    outcast schrieb:

    und es vehlt auch noch das
    #include <cstdlib>

    Nein. Die If-Abfragen und der Datentyp char sind in der Sprache C++ verankert, da brauchst du keine zusätzlichen Bibliotheken. Zudem reicht <iostream> für deine Anwendung.

    Und was die Zufallsfunktion rand() betrifft: Wenn du nicht in jedem Programmdurchlauf die gleiche Folge von Pseudozufallszahlen haben willst, solltest du einmal am Anfang des Programms folgende Funktion aufrufen (benötigt den Header <ctime>):

    srand(static_cast<unsigned int>(time(0)));
    

    Erzähl doch nichts, der Compiler kennt nur #include, für alles weitere braucht man

    #include <keywords>
    

    in der ersten Zeile der Datei.



  • Nexus schrieb:

    outcast schrieb:

    und es vehlt auch noch das
    #include <cstdlib>

    Nein. Die If-Abfragen und der Datentyp char sind in der Sprache C++ verankert, da brauchst du keine zusätzlichen Bibliotheken. Zudem reicht <iostream> für deine Anwendung.

    Aber für rand() und srand() wird cstdlib benötigt.



  • na ja dieses prog hat sich irgendwie in eine endlosschleife verwandelt
    XD



  • DerKuchen schrieb:

    Aber für rand() und srand() wird cstdlib benötigt.

    Bei mir (Visual C++ Express 2008) reicht dafür der Header <iostream>.

    outcast schrieb:

    na ja dieses prog hat sich irgendwie in eine endlosschleife verwandelt
    XD

    Schön für dich. Falls wir dir helfen sollen, solltest du das Problem möglicherweise genauer schildern. 😉



  • ich hab doch den qtext beigefügt
    na ja ich wollte nur eine abfrage haben ob er das prog wiederhohlen solle
    oder ob er beenden kann
    na ja jetzt fragt er wiederhohlung?(j/n)
    und wenn man jetzt j oder n tippt dann
    gibt er unendlich mal
    bitte geben sie j für ja und n für nein ein !!



  • Ersetze in deinem Quellcode

    int antwort;
    

    durch

    char antwort;
    

    char ist der Standard-Datentyp für Zeichen.

    Und benutz bitte in Zukunft CPP- und nicht Code-Tags, das ist übersichtlicher (erste weisse Schaltfläche).



  • ok hat funktioniert
    das programm läuft genau so wie ich wollte
    ich bedanke mich vielmals
    diese fehler werden mir nicht mehr passieren ^^


Anmelden zum Antworten