Komme nicht weiter....
-
Hallo ich bin ein Anfänger und kommen mit diesem Programm nicht weiter:
#include<iostream> using namespace std; void main() { char a; a='red'; cout << "Rot: "; cin >> a; if(a==a) cout << "Richtig"; else cout << "Falsch" ; return 0; }könnt ihr mir helfen?
Dakne
-
Ich würde gerne helfen, komme aber nicht weiter.
-
#include <iostream> #include <string> // fuer std::string using namespace std; int main() { // statt char oder was zumindest noch nen bissle richtig waer // char * zu benutzen ... lieber std::string string a,b; a = "red"; cout << "Rot: "; cin >> b; if(a==b) cout << "Richtig"; else cout << "Falsch" ; return 0; }
-
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.