probleme mit char
-
hmm da es mein erster post ist hoff ich das ich da eh richtig bin
also haett mal ne frage ...
ich verstehe das nicht genau mit char
wenn ich nur char variable definiere kann diese ja nur ein zeichen haben
wenn ich aber char* variable mache auch mehrere
nur ich habe jetzt zbchar* auswahl; cin >> auswahl; //da gebe ich mensch ein if(auswahl=="mensch") ....
nur das problem ist, er springt nie in íf rein, wieso?
hoffe es ist nicht zu bloed ...
-
[edit]
Beitrag im Nachhinein geändert, deswegen Antwort == sinnfrei.
[/edit]
-
is nur ein tippfehler hab eh auswahl=="mensch" gemacht ...
-
Wenn du char-Zeiger mit == vergleichst, werden die Adressen verglichen, nicht die Inhalte. Außerdem ist auswahl unintialisiert, daher schreibt >> die eingelesenen Daten irgendwo hin, aber nicht in reservierten Speicher.
Benutz lieber std::string statt char*.
-
was meinst du mit auswahl ist uninitialisiert ?
weil wenn ich cin >> auswahl und dann cout << auswahl habe gibt er mir mensch aus!
und was meinst du mit std::string ?
tut leid kenn mich nicht wirklich aus
-
#include <string> //using namespace std; oder std::string und std::cin ... string auswahl; cin >> auswahl; if(auswahl=="mensch")
-
thx fubar !
jez gez, kannst mir viell noch sagen was das jetzt genau ist?also was kann string alles sein (nur buchstaben?)
und was bedeutet //using namespace std; oder std::string und std::cin ?
-
string:
http://www.cppreference.com/cppstring.htmlnamespace std:
http://www.voyager.prima.de/cpp/usingstd.html
-
@ namespace std:
versteh denn sinn nicht wirklich, das einzige was ich sehe ist das wenn ich das ganze using std::xxx mach das ich bei den include datein das ".h" weglassen kann, oder hat das auch einen anderen grund/vorteil dies zu machen ?
-
Wenn du "einfach das .h weglässt" bindest du andere Datei ein. Dann bist
du ein moderner ein kein veralteter C++lerDie ganze Namespace-Geschichte
hat mit der Organisation großer Projekte zu tun. Ohne das using namespace std;
musst du vor cin, cout, string, vector... ein std:: schreiben. Damit werden
Konflikte mit anderen Variabeln, Funkionen... vermieden, die den gleichen
Namen haben: Durch den Namespace werden sie unterschieden.
-
aso, na is ja nicht so wichtig, von großen projekten bin ich ja noch weit entfernt :p
danke nochmals an alle !