Programm funktioniert nicht(Testprogramm)



  • --------------------Konfiguration: Testen1 - Win32 Debug--------------------
    Kompilierung läuft...
    Testen1.cpp
    C:\Entwicklungen\Testen\Testen1.cpp(3) : error C2871: 'std' : Existiert nicht oder ist kein Namespace
    C:\Entwicklungen\Testen\Testen1.cpp(7) : error C2065: 'string' : nichtdeklarierter Bezeichner
    C:\Entwicklungen\Testen\Testen1.cpp(7) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'eingabe'
    C:\Entwicklungen\Testen\Testen1.cpp(7) : error C2065: 'eingabe' : nichtdeklarierter Bezeichner
    C:\Entwicklungen\Testen\Testen1.cpp(19) : warning C4508: 'main' : Funktion sollte einen Wert zurueckgeben; Ergebnistyp 'void' angenommen
    Fehler beim Ausführen von cl.exe.

    Testen1.exe - 4 Fehler, 1 Warnung(en)

    Das ist die Fehlermeldung wenn ich Kompilieren will.



  • @Elise: ok, ich verbessere! War nur copy 'n paste.
    @tommy: iostream.h und string.h sind veraltet, du musst iostream und string verwenden! (ohne .h) Und, ja, du musst using namespace std verwenden wenn du diese dateien verwenden willst (natürlich geht auch: std::string z.b.)
    /OK, les grad dein post! Hab an dem Programm noch ne kleinigkeit verändert ("gut" statt 'gut') Was für einen kompiler hast du? (oder nur vergessen das .h zu löschen?)



  • Ok,jetzt ist die Fehlermeldung nur noch:-------------------Konfiguration: Testen1 - Win32 Debug--------------------
    Kompilierung läuft...
    Testen1.cpp
    c:\entwicklungen\testen\testen1.cpp(11) : error C2676: Binaerer Operator '==' : 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' definiert diesen Operator oder eine Konvertierung in einen fuer den vordefinier
    ten Operator geeigneten Typ nicht
    c:\entwicklungen\testen\testen1.cpp(19) : warning C4508: 'main' : Funktion sollte einen Wert zurueckgeben; Ergebnistyp 'void' angenommen
    Fehler beim Ausführen von cl.exe.

    Testen1.exe - 1 Fehler, 1 Warnung(en)



  • Ok jetzt hab ich euch erstmal mit Fehlermeldungen überschüttet 🙂



  • Zur sache mit den Arrays: ja, aber dann brauchst du net string! Allgemein gesehen ist string und vector aber einfacher als array.



  • Erstmal ist nicht iostream veraltet sondern iostream.h ! So wie Ness es zeigt ist es schon ok aber es heißt natürlich "Gut" und nicht 'Gut' . Denn '' ist für einzelne Zeichen/Buchstaben und "" für einen ganzen string.

    Ok wenn du es mit einen char array machen willst ginge z.b. das hier:

    #include <iostream>
    using namespace std; //Zwar nicht die schönste Methode aber erstmal ok
    
    int main()
    {
        char eingabe[10];
        cout << "Gib ein wie du dieses Programm findest:Gut, Schlecht oder Geht So!\n";
        cin >> eingabe;
    
        if( !strcmp(eingabe, "Gut") ) //bzw. if(strcmp(eingabe, "Gut") ==0)
        {
            cout << "Finde ich auch.\n";
        }else
        {
            cout << "Ich stimme dir nicht zu.\n";
        }
    
    }
    

    Du musst strcmp nehmen um char* bzw char[] zu vergleichen, da das normale == nur die Adressen vergleicht aber nicht den Inhalt...



  • if(eingabe == "Gut")
    

    muss heissen

    if(eingabe.compare("Gut") == 0 )
    

    Kurt



  • Ok danke es klappt.



  • @ ZuK
    Muss es nicht 😛



  • habs gerade geändert



  • @ ZuK
    Wenn es aber ein string ist reicht doch == "Gut" ...



  • es scheint ich lebe schon längere zeit im irrtum
    habe wirklich geglaubt der string operator == vergleicht die adressen.
    sorry



  • @ZuK
    Das ist nur bei char* so ... Die string klasse hat ihren == operator dafür überladen 🙂


Anmelden zum Antworten