Komme nicht weiter....



  • Du überschreibst a mit der Eingabe
    und vergleichst es dann mit sich selbst.

    Du brauchst zwei verschiedene Strings.

    Ausserdem ist Char nur ein Zeichen
    wenn schon dann müsste das Char* sein,
    aber nimm lieber std::string, dazu musst Du <string> includen..



  • Mit char würde es so gehen:

    #include<iostream>
    using namespace std;
    
    int main()
    {
        const char TEST = 'r';
        char eingabe;
    
        cout << "Rot (r): ";
        cin >> eingabe;
    
        if(eingabe == TEST)
            cout << "Richtig";
        else
            cout << "Falsch" ;
    }
    


  • 1. char kann nur ein einzelnes Zeichen aufnehmen (und 'red' dürfte nichtmal durch den Compiler kommen). Nimm lieber string.

    2. Eine Variable mit sich selbst zu vergleichen, ist Schwachsinn - du mußt schon "red" und die User-Eingabe in zwei getrennten Variablen speichern (oder du vergleichst direkt mit der Konstanten).

    3. "Komme nicht weiter" ist eine miserable Fehlerbeschreibung. Was soll dein Programm denn machen?



  • Hallo,

    char kann nur ein einzelnes Zeichen aufnehmen. Entweder du nimmst char* und die dazugehörigen Funktionen (strcpy, strcmp) oder besser gleich string.

    #include <iostream>
    #include <cstring>
    
    using namespace std;
    
    int main() // void ist kein Standard
    {
        char a[10];
        strcpy(a,"red");
    
        cout << "Rot: ";
        char b[10];
        cin >> b;
    
        if(strcmp(a,b) == 0)
          cout << "Richtig";
        else
          cout << "Falsch" ;
    
        return 0;
    }
    

    oder besser

    #include<iostream>
    using namespace std;
    
    int main()
    {
        string a, b;
        a = "red";
    
        cout << "Rot: ";
        cin >> b;
        if(a==b)
          cout << "Richtig";
        else
          cout << "Falsch" ;
    
        return 0;
    }
    

    [edit] etwas spät [edit]



  • Hallo
    Zuerst danke
    und jetzt habe ich nochmal ein Problem
    also ich will ein Quiz machen
    dazu z.B mit drei Fragen
    am Schluss will ich, dass der Computer sagt wieviel Fragen ich richtig geantwortet
    und wieviel ich Falsch gemacht habe!!!



  • dann zeig mal wies bei dir bis jetzt aussieht und beschreibe wo genau du nen problem hast...

    gruessle



  • Ich habe noch nicht angefangen
    ich weiss nur nicht wie man am Schluss sagt
    wieviel man richtig und wieviel falsch gemacht hat



  • brauchst zwei Zählvariablen, die du bei jeder Frage entsprechend erhöhst (eine für richtig, eine für falsch) - und am Ende gibst du diese zwei Variablen über cout aus.



  • Also ich nehme mal an Frage gibt dir ein Boolean zurück ob du die Frage richtig beantwortet hast, oder nicht. Wenn sie wahr zurückgibt, wird richtige inkrementiert. Am Ende gibts du alles aus.
    Du kannst Frage auch eine Nummer übergeben, damit sie nicht immer die gleiche Frage stellt.

    int richtige = 0

    for(int i = 0; i<Anzahl_der_Fragen; i++)
    if(Frage())
    richtige++;

    cout<<"Richtige Antworten: "<<richtige<<endl;
    cout<<"Falsche Antworten: "<<Anzahl_der_Fragen-richtige<<endl;



  • Danke
    das problem ist gelöst
    aber ich habe nochmal ein problem
    also z.B[

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
    
        string a[36],b[36];
        a[3] = "I went";
    
        cout << "Ich ging: ";
        cin >> b[3];
    
        if(a[3]==b[3])
          cout << "Richtig\n\n";
    
        else
          cout << "Falsch. Die richtige Antwort waere I went." ;
    
        return 0;
    }
    

    aber das stimmt nicht weil cin leerzeichen als trenner interpretier
    also ich weiss dass man etwas mit cin.getline machen muss.......



  • getline(cin, b);
    


  • aber es heisst doch so: cin >> b[3];



  • Und?

    getline(cin, b[3]);
    


  • CStoll schrieb:

    und 'red' dürfte nichtmal durch den Compiler kommen

    Doch, das ist vollkommen zulässig. Das ist ein sogenanntes Multicharacter Literal und vom Typ int. Wieviel Zeichen vorhanden sein dürfen ist allerdings plattformabhängig.


Anmelden zum Antworten