Warum funktioniert diese Schei.e nicht???
-
Hallo,
#include <iostream> #include <string> #include <fstream> using namespace std; int main() { int wahl; string test; ofstream dat_aus; cin>>wahl; if(wahl==1) { getline(cin,test); cout<<test; dat_aus.open("test.txt",ios::out); dat_aus<<test; } system("PAUSE"); return 0; }So Warum kann ich nun nicht den Text eingeben sonder warum erscheint gleich Drücke Sie eine Taste oder so????
MfG
Sascha081088
-
nachdem du 1 eingibst drückst du auch die Enter-Taste.
Die 1 wird dabei in wahl gespeichert, das '\n' vom Zeilenwechsel
aber nicht. Dies bleibt im cin Puffer und wenn dann
das getline(cin,test); ausgeführt wird,
wird dort das '\n' abgelegt und das Programm
schreibt die Datei und wird beendet.Du müßtest das '\n' aus dem Puffer löschen oder abfangen.
if(wahl==1) { getline(cin,test); getline(cin,test); cout<<test; dat_aus.open("test.txt",ios::out); dat_aus<<test; }Hierbei wird nun das '\n' durch eine zusätzliche getline()
abgefangen und erst in der 2. getline() gibst du dann deine
Eingabe ein.Ist bestimmt die uneleganteste Lösung, aber sie funktioniert
um das '\n' abzufangen.Gruß,
DC
-
Cool Thx teste es gleich mal!!!