000
10.01.2008, 17:40
Raziel
|
hallo zusammen, mein Problem ist folgendes: ich habe ein Programm geschrieben, bei dem der Benutzer einen Text eingeben soll. Dieser String soll durchaus mehrere Wörter enthalten. Aber sobald man ein Leerzeichen schreibt, bricht das Programm leider ab. Hier mal etwas Code, um das Problem zu verdeutlichen:
#include <iostream> #include <string>
using namespace std;
int main() { int laengeText; string eingabeText(""); cout<<"Geben sie ihren Text ein:\t"; cin>>eingabeText; laengeText = eingabeText.length(); cout<<"Ihr Text hat "<<laengeText<<" Zeichen."<<endl; };
Bei 1-Wort Eingaben oder zum Beispiel bei der Eingabe "§h$32" klappt alles bestens. Ich dachte, ein String kann alle Zeichen, also auch Leerzeichen, enthalten. Was mache ich falsch oder klappt es anders?
mfg, raziel
--
Dieser Beitrag wurde am 10.01.2008 um 17:41 von Raziel bearbeitet.
|
|
Profil || Suche
|
001
10.01.2008, 17:57
Bluthund
|
cin.getline benutzen.
--
The C language combines all the power of assembly language with all the ease-of-use of assembly language. "humorig is n blödwort :>" by -CarniGGeLjumpR-
|
|
Profil || Suche
|
002
10.01.2008, 18:03
Raziel
|
danke schon mal für deine hilfe :)
muss ich, wenn ich mit cin.getline arbeite, von string auf char umsteigen?
#include <iostream> #include <string>
using namespace std;
int main() { char eingabeText[256]; cout<<"Geben sie ihren Text ein:\t"; cin.getline(eingabeText,256); };
edit: ok, hat sich bereits erledigt, ich danke dir für die schnelle hilfe ;) http://www.cplusplus.com/reference/string/getline.html
--
Dieser Beitrag wurde am 10.01.2008 um 18:04 von Raziel bearbeitet.
|
|
Profil || Suche
|
003
10.01.2008, 18:42
Kriz
|
#include <iostream> #include <string>
int main() { std::string eingabeText;
std::cout << "Geben sie ihren Text ein:\t"; std::getline(std::cin, eingabeText); std::cout << eingabeText << std::endl; }; Hat den Vorteil, daß man sich um die Stringlänge keine Gedanken machen muß.
--
K:R-I)Z++ "CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp In memory of Voice ( 2005/03/30)
Dieser Beitrag wurde am 10.01.2008 um 21:02 von Kriz bearbeitet.
|
|
Profil || Suche
|
004
10.01.2008, 18:55
Bluthund
|
Stimmt, hatte gar nicht realisiert dass du mit std::string arbeitest. Da ist std::getline da natürlich wesentlich angenehmer.
--
The C language combines all the power of assembly language with all the ease-of-use of assembly language. "humorig is n blödwort :>" by -CarniGGeLjumpR-
|
|
Profil || Suche
|