Ich weiß nicht was ich falsch gemacht habe



  • #include <string>
    #include <iostream>
    
    int main()
    {
        char buffer0[20]
        char buffer1[5]
        do
        {
             std::cout << "Gib deinen Namen ein: " << std::flush; 
             std::cin.get(buffer0, 20); 
             std::cout << "Du heißt also" << Buffer << "?Stimmt das?" << std::endl;
             std::cout << "(gib ja oder nein ein):" << std::flush;
             std::cin.get(buffer, 5);
             if (buffer1[5] = 'ja') 
          break; 
          }
          while (std::atoi(buffer1) = 'nein' );
    
          std::cout << "Gut du bist also " << buffer0 << "schön dich zu sehen" std::endl;
        }
    

    In Zeile 7,18 und 20 meckert der Compiler die Ganze Zeit irgendwas.
    Kann mir da einer helfen??



  • Das 1. was du falsch gemacht hast: Du hast einen nichtssagenden Thread-Titel gewählt.
    In Zeile 6 und 7 fehlt am Ende das Semikolon; Die Compiler Fehlermeldung sollte dich aber bereits darauf hinweisen ("Missing ;" oder sowas).
    Weitere Fehler: Du willst einen Stringvergleich mit dem normalen Vergleichsoperator durchführen. Das geht nicht. Dazu benutzt man in C strcmp und in C++ besser gleich std::string (du inkludierst ja eh schon <string>. Außerdem ist dein Vergleichsoperator falsch. Ein einfaches "=" ist eine Zuweisung und kein Vergleich. Der richtige Operator wäre "==".
    In Zeile 18 sind gleich 3 Fehler auf einmal. Zum einen wieder = statt ==, dann definierst du mit '' char Literale und nicht strings. 'a' ist ein char und "a" ist ein string. Ein char kann nur ein Zeichen speichern, drum ist 'nein' falsch. Des weiteren liefert atoi einen int zurück, den du nicht mit einem string vergleichen kannst (siehe oben).

    Kann sein das noch was anderes falsch is, aber es ist schon spät. 😃



  • this->that schrieb:

    Kann sein das noch was anderes falsch is, aber es ist schon spät. 😃

    Wohl eher früh. 😉 (Was machst du nur um diese Zeit am PC?!)

    @eliasdfg(der Anfänger):
    Das nächste mal liegt es nahe:
    1. Die Compilerfehler zu lesen und
    2. Wenn du immernoch nicht weisst, was los ist diese Fehlermeldungen auch posten.

    Immerhin hast du die cpp-Tags gefunden! 👍



  • while (std::string;(buffer1) == 'nein' );
    

    jetzt kommt eine Fehlermeldung:

    Zeile 20: no match for ´operator==´ in string (((const char*)((char*)...usw.



  • ein ; und zwei ' müssen weg und zwei " dazu



  • Das Ganze sieht inzwischen so aus:

    #include <string>
    #include <iostream>
    
    int main()
    {
        char buffer0[20];
        char buffer1[5];
        do
        {
             std::cout << "Gib deinen Namen ein: " << std::flush;
             std::cin.get(buffer0, 20);
             std::cout << "Du heißt also" << buffer0 << "?Stimmt das?" << std::endl;
             std::cout << "(gib ja oder nein ein):" << std::flush;
             std::cin.get(buffer1, 5);
             if (buffer1[5] == 'ja')
          break;
          }
          while (std::string (buffer1) == "nein" );
    
          std::cout << "Gut du bist also " << buffer0 << "schön dich zu sehen" std::endl;
        }
    

    Es erscheinen die Fehlermeldungen:

    Z.15: [Warning] compansion is always false due to limited range of data type
    Z.20: expected `;´ before "std"

    Z.20 hab ich schon vor und nach jedem "std" ein ´;´ gestzt.
    Z.15 😕



  • Da hat dich der Compiler verarscht. Eigentlich will er ein << vor dem letzten std.

    Die if bedingung muss so sein wie die while, oder gleich von std::cin in std::string einlesen.



  • Danke jetzt gehts 😃 👍



  • Ich hätt da noch ne Frage wie kannich es so proggen ,dass es ein Cursor für "ja" und "nein" gibt?



  • hi,
    hatte gerade ma den code von eliasdfg, in me dev kopiert.

    der dev zeigt mir so ca. 50 fehler an(folgef.)

    :xmas1: :xmas2:



  • Bei mir (auch DEV C++) gibt der Code:

    #include <string>
    #include <iostream>
    
    int main()
    {
        char buffer0[20];
        char buffer1[5];
        do
        {
             std::cout << "Gib deinen Namen ein: " << std::flush;
             std::cin.get(buffer0, 20);
             std::cout << "Du heißt also" << buffer0 << "?Stimmt das?" << std::endl;
             std::cout << "(gib ja oder nein ein):" << std::flush;
             std::cin.get(buffer1, 5);
             if (std::string (buffer1) == "ja")
          break;
          }
          while (std::string (buffer1) == "nein" );
    
          std::cout << "Gut du bist also " << buffer0 << "schön dich zu sehen" << std::endl;
        }
    

    keine Fehler



  • bei mir versucht er in anderen header dateien zu öffnen.
    daraus resultieren jede menge fehler.
    weis wer rat?? :xmas1: :xmas2:



  • chi schrieb:

    bei mir versucht er in anderen header dateien zu öffnen.

    Den Satz verstehe ich nicht.. :xmas2:



  • #include<iostream>
     #include <string>
    
      int main()
      {
        char a;
        char b;
        do
        {
            cout<<"Gib deinen Namen ein ein: ";
            cin>>a;
            cout<<"Du heißt also" << a << ".Stimmt das?";
            cout<<"(gib ja oder nein ein)";
            cin>>b;
            if ( b == "ja")
          break;
        }
        while ( b == "nein");
        cout<<"schön dich zu sehen" << a << ".";
      }
    

    nachdem das andere nicht funktioniert hat hab ich das versucht aber bei
    Z.15 und Z.18 meckert der: Iso C++ irgendwas...



  • Du vergleichst einen char mit einem const char* (Zeichenkettenliteral).

    Dev-C++ solltest du allerdings nicht verwenden, da es veraltet ist und nicht mehr entwickelt ist. Benutze doch MSVC++ 2008 Express oder Code::Blocks.



  • Nexus schrieb:

    Du vergleichst einen char mit einem const char* (Zeichenkettenliteral).

    Also was soll ich machen???



  • eliasdfg(der Anfänger) schrieb:

    Nexus schrieb:

    Du vergleichst einen char mit einem const char* (Zeichenkettenliteral).

    Also was soll ich machen???

    Aus b einen std::string, anstatt ein char machen..



  • drakon schrieb:

    this->that schrieb:

    Kann sein das noch was anderes falsch is, aber es ist schon spät. 😃

    Wohl eher früh. 😉 (Was machst du nur um diese Zeit am PC?!)

    Hatte Absolventenfeier und hab danach noch das Spiel Bayern vs. Hoffenheim gesehen. Da wurde es dann etwas... später. 😃 :xmas1:



  • #include<iostream>
    #include <string> //wieso hattest du string inkludiert ohne es zu benutzen?
    using namespace std; //wie willst du cout und cin ohne std benutzen?
    
    int main()
    {
        string a; //auch nicht ohne std, by the way, tolle namensgebung
        string b;
        do
        {
            cout<<"Gib deinen Namen ein ein: ";
            cin>>a;
            cout<<"Du heisst also " << a << ". Stimmt das?\n"; /*wenn du nicht den
                                                                 hexacode hast,
                                                                 kannst du auch kein
                                                                 ä,ö,ü,ß.. schreiben
                                                               */
            cout<<"(gib ja oder nein ein)";                    
            cin>>b;                                            
            if (b == "ja")
            break;
        }
        while (b == "nein");
        cout<<"schoen dich zu sehen" << a << "."; //same here
    }
    

    Dieser Code funktioniert jetzt.



  • hallo FreakY<3Cpp,
    mein dev zeigt immer noch fehler..............



  • chi schrieb:

    hallo FreakY<3Cpp,
    mein dev zeigt immer noch fehler..............

    Dann ist es kaputt, installier mal windows neu


Anmelden zum Antworten