Leerzeichen bei streams bzw strings
-
also mein programm sieht wie folgt aus
//Das Programm schreibt erst ein eingebenes Wort in eine Datei //dann aus der datei ausgeben //Florian Weinhold //21.11.2005 #include <fstream> #include <iostream> using namespace std; int main() { string Text; cout<<"Geben sie ein Wort ein, dass in die Datei geschrieben werden soll.\n"; cin>>Text; cout<<endl; fstream z; z.open("blub.txt", ios::out); //Hier wird der Dateipfad angegeben und Datei //geöffnet. ios::out zum einlesem z << Text << endl; //Der Text wird übergeben z.close(); //Datei wird geschlossen //////////////////////////////////////////////////////////////////////////// cout<<"Das folgende Wort wurde in die Datei reingeschrieben:\n"<<endl; ifstream f; string s; f.open("blub.txt", ios::in); //öffnet die Datei while (!f.eof()) //überprüft ob daten vorhanden sind { getline(f, s); //greift auf eine zeile zu cout << s << endl; //gibt den text aus } f.close(); system("Pause"); return 0; }also ein wort kann man ja angeben. aber mehere wörter will der net wie mach ich das? der bricht immer bei leerzeichen ab.
-
cin >> text bricht bei einem leerzeichen ab.
versuchegetline(cin,Text);Kurt
-
Hallo,
Das liegt daran, das der operator>> von cin nur bis zum nächsten Whitespace liest. Wenn du eine ganze Zeile einlesen willst, ist die Funktion getline() bestimmt etwas für dich.Gruß Caipi
-
jo danke kann ich gebrauchen
-
OK ich hab das nu eingabeut aber der schreibt nichts in die datei wo muss ich dass denn eingeben
//Das Programm schreibt erst ein eingebenes Wort in eine Datei //Florian Weinhold //21.11.2005 #include <fstream> #include <iostream> using namespace std; int main() { string Text; cout<<"Geben sie ein Wort ein, dass in die Datei geschrieben werden soll.\n"; //cin>>Text; cout<<endl; fstream z; z.open("blub.txt", ios::out); //Hier wird der Dateipfad angegeben und Datei getline(cin,Text); //geöffnet. ios::out zum einlesem //z << Text << endl; //Der Text wird übergeben z.close(); //Datei wird geschlossen //////////////////////////////////////////////////////////////////////////// cout<<"Das folgende Wort wurde in die Datei reingeschrieben:\n"<<endl; ifstream f; string s; f.open("blub.txt", ios::in); //öffnet die Datei while (!f.eof()) //überprüft ob daten vorhanden sind { getline(f, s); //greift auf eine zeile zu cout << s << endl; //gibt den text aus } f.close(); system("Pause"); return 0; }
-
Du hast das Schreiben in die Datei auskommentiert. ?????
//z << Text << endl; //Der Text wird übergebenKurt
-
Wieso hast du ein fstream wo du es nur zum Ausgabe benutzt. Ein ofstream würde es auch bringen...
while (!f.eof()) //überprüft ob daten vorhanden sindDas Kommentar wiederspricht hier dem Code. Für nähere Infos siehe hier

http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=eof#Answ