String wird nach einem Wort abgeschnitten.
-
Hallo,
bin c++ Anfänger und verstehe nicht warum mein String nach einem Wort abgeschnitten wird:#include <iostream> using namespace std; int main(void){ char name[20]; cin>>name; cout<<"\n"<<name; return 0; }
Wenn ich eingebe: "Hallo wie gehts" wird nur "Hallo" ausgegeben !?
MfG KK!
-
Das liegt daran, dass der >>-operator der Klasse istream (von der cin eine Instanz ist) in strings nur bis zum nächsten whitespace einliest. Wenn du ne ganze Zeile haben willst, machs so:
getline(cin, name);
Ansonsten würde ich dir dringend empfehlen, name als std::string zu deklarieren, nicht als char-array - "Hallo wie gehts" ist schon 16 byte groß, du läufst also in Gefahr, den Buffer zu überfüllen. So würd ichs machen:
#include <iostream> #include <string> int main() { std::string name; std::getline(std::cin, name); std::cout << std::endl << name << std::endl; }