Komme nicht weiter....



  • 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