Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
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:

Quellcode:#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.
zum Seitenanfang zum Seitenende 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-

zum Seitenanfang zum Seitenende 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?

Quellcode:#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.
zum Seitenanfang zum Seitenende Profil || Suche
003
10.01.2008, 18:42
Kriz



Quellcode:#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.
zum Seitenanfang zum Seitenende 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-

zum Seitenanfang zum Seitenende Profil || Suche