S
Nozdrum schrieb:
...
#include <iostream>
using namespace std;
int main()
{
string text,ende;
cout << "Text: ";
cin >> text;
cout << "Ihr Text ist " << text.size() << " Zeichen lang!";
cin >> ende;
}
Wenn ich jetzt einen string eingebe der ein Leerzeichen enthält stürzt das Programm einfach ab....
Glaub' ich nicht
"Absturz" bedeutet, dass das Programm abnormal beendet wird (oft durch das Betriebssystem). Das obige Programm läuft aber ganz normal durch.
Was Du vermutlich nicht weißt: "cin >> (stringvariable)" liest nur bis zum ersten Leerzeichen und hält dann die Eingabe für beendet und das Programm wird weiter ausgeführt.
Spielen wir das mal mit "Hallo Welt!" durch:
#include <iostream>
using namespace std;
int main()
{
string text,ende;
cout << "Text: ";
cin >> text; // Wartet auf Deine Eingabe, liest bis zum ersten Leerzeichen
// Hier hat text den Inhalt "Hallo"
cout << "Ihr Text ist " << text.size() << " Zeichen lang!";
// Diese Ausgabe wird noch kurz auf den Bildschirm geworfen und sofort geht's weiter mit:
cin >> ende; // Wartet auf Eingabe - hups, ist ja schon da: "Welt!"
// ende hat den Inhalt "Welt!"
} // Oh, Programmende -> Fenster schließen
Wahrscheinlich geht das Ganze so fix, dass Du das, was nach Deiner Eingabe kommt, nicht mehr mitbekommst.
"Es passiert hier nichts Unkontrollierteres" ("Die Sieger")
Gruß,
Simon2.