Einlesen von Strings MIT Leerzeichen
-
Hallo! Immer wenn ich versuche einen Satz per cin>>wort einzulesen schneidet er alles hinter dem 1. Leerzeichen ab:
#include <iostream> using namespace std; int main() { string wort; cin>>wort; //hier "Hallo, wo liegt der Fehler" eingeben string wort2("Hallo wo liegt der Fehler"); cout<<wort1<<"\n"; cout<<wort2; system("pause"); }
Warum erkennt er bei wort2 die Leerzeichen an, aber bei wort 1 nicht? Wie kann ich Strings mit Leerzeichen einlesen?
-
mit std::getline()
-
warum geht denn cin nicht? kennt jemand eine deutsche Befehlsreferenz?
-
glaub cin hat auch soetwas ähnliches. fallst du die operatoren >> meinst, dann kann ich nur sagen, dass leerzeichen und co. als trennzeichen betrachtet werden. evtl. kann man das irgendwie abstellen. keine ahnung.
-
hmm nein std::cin ließt bis zum 1. leerzeichen ein ... was dann kommt interessiert nicht. Und ja du kannst auch std::cin.getline nehmen ... aber nimm doch einfach
#include <iostream> #include <string> int main() { std::string string_line_in; std::getline(std::cin, string_line); std::string string_line_out("Wo liegt mein Fehler?"); std::cout << string_line_in << std::endl; std::cout << string_line_out << std::endl; }
-
ok, habs kapiert danke