char, if-abfrage ohne übereinstimmungen
-
Hi,
ich versuch mich grad ein bisschen an c++...
Anfänger, also nicht schimpfen, ja...char eingabe[100]; cout << "Was willst du nun tun...." << endl; cin >> eingabe; if (eingabe == "x") {} if (eingabe == "y") {}So, mein Problem:
Komplieren, alles klappt. Wenn ich aber an diese Stelle komme, dann wir keine der if-Schleifen ausgelöst. (nein, ich hab mich nicht jedesmal vertippt.)Hoffe ihr könnt mir helfen.
Falls noch andere Code-Teile relevant sind werde ich die natürlich auch posten.
Ich möchte aber kein
"1. .... 2. .... 3. ...." machen.Vielen dank schonmal
-
Nimm
std::stringstattchar-Arrays, damit sparst du dir viele Probleme. Ansonsten müsstest du die Funktionstrcmp()stattoperator==benutzen. Aber glaub mir, diestring-Klasse ist viel komfortabler und sicherer.
-
könntest du mir vllt grade meinen quelltext dann anpassen (als beispiel) ich denke das würde für mich reichen, um den gesamten quelltext zu ändern.
vielen dank
-
#include <string> #include <iostream> // mit "using namespace std;" entfallen unten sämtliche "std::" ;-) // ... std::string eingabe; std::cout << "Was willst du nun tun...." << std::endl; std::cin >> eingabe; if (eingabe.compare("x") == 0) // hier kann auch einfach stehen: eingabe == "x", da std::string einen operator== definiert. { // mach irgendwas, wenn eingabe == "x" } if (eingabe.compare("y") == 0) // das gleiche wie oben { // mach irgendwas, wenn eingabe == "y" }und variante mit strcmp
#include <iostream> using namespace std; // ... char eingabe[100]; cout << "Was willst du nun tun...." << endl; cin >> eingabe; if (!strcmp(eingabe, "x")) // gleichbedeutend mit: strcmp(eingabe, "x") == 0 { // mach irgendwas, wenn eingabe == "x" } // usw.
-
Wieso
compare()auf 0 prüfen? Für irgendwas gibts denoperator==.if (eingabe == "y")
-
Vielen dank schonmal, ich werd jetzt mal des ganze mit string probieren...
-
Super, es funktioniert.
Danke dafür.
Werd dann mal weitermachen.