|
[C++] Komplette Zeile einlesen
|
nacramell
Junior Member

Beiträge: 37
Registriert seit: Mar 2008
Gender: Male
Location: Gernsbach
Bewertung: 0
|
[C++] Komplette Zeile einlesen - Posted At: 27.03.2008 11:17 PM
ein weiteres problem diesmal nicht beim programmieren sondern danach
#include <fstream>
#include <cstdlib>
#include <iostream>
#include <dirent.h>
#include <process.h>
#include <windows.h>
#include <shellapi.h>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
string Dname; //hier startet die Abfrage
//des Dateinamens und Art der datei
cout << "Bitte Datei Namen mit Endung txt, dat, oder anderen";
cout << "\neingeben\n";
cout << "Datei Name : ";
cin >> Dname;
cout << "Name der Datei + Endung:" << Dname << endl;
//ENDE
string Dinhalt; //hier startet die Abfrage
//des Inhalts der zu erstellenden Datei
cout << "Bitte Inhalt der zu erstellenden Datei angeben\n";
cout << "Inhalt :";
cin >> Dinhalt;
cout << "Inhalt der Datei :\n" << Dinhalt << endl;
//ENDE
//Das hier sollte nun eig die Datei
//mit Datei Namen und Art: Dname
//mit Inhalt: Dinhalt
//einfügen tuts aber net
fstream f;
f.open( Dname.c_str() , ios::out); //das hier gibt ein Fehler !!
//ich bin noch noob
//also bitte nicht auslachen^^
f << Dinhalt << endl;
f.close();
}
der funktioniert super nur schreibt er später in z.b. eine text datei nur das erste wort rein (das ich ihm durch den befehl cin gegeben habe)
und ich würd aber gern einen text reinschreiben
noch was macht des eig was das ich fast immer alle includes da lass (damit ich da keinen fehler bekomm ^^)?
Dieser Beitrag wurde zuletzt bearbeitet: 27.03.2008 11:24 PM von nacramell.
|
|
|
|
 |
N43
Administrator
      
Beiträge: 237
Registriert seit: Jan 2004
Gender: Male
Location: Stuttgart
Bewertung: 0
|
RE: [C++] Komplette Zeile einlesen - Posted At: 27.03.2008 11:28 PM
Abend,
cin ließt über den >> Operator nur bis zum ersten Space (Leerzeichen, Tab, Return). Eine ganze Zeile bekommt man mit getline.
#include <iostream>
using namespace std;
int main() {
string s;
getline(cin, s);
cout << s;
}
noch was macht des eig was das ich fast immer alle includes da lass (damit ich da keinen fehler bekomm ^^)?
Der Compiler braucht dann länger zum kompilieren, aber ansonsten macht das nichts.
N43
www.programmers-corner.de
Debuggers don't remove Bugs, they only show them in Slow-Motion.
|
|
|
|
 |
nacramell
Junior Member

Beiträge: 37
Registriert seit: Mar 2008
Gender: Male
Location: Gernsbach
Bewertung: 0
|
RE: [C++] Komplette Zeile einlesen - Posted At: 27.03.2008 11:30 PM
hm des
getline(cin, s);
cout << s;
muss nach
string Dinhalt; //hier startet die Abfrage
//des Inhalts der zu erstellenden Datei
cout << "Bitte Inhalt der zu erstellenden Datei angeben\n";
cout << "Inhalt :";
in meiner Funktion ?
|
|
|
|
 |
nacramell
Junior Member

Beiträge: 37
Registriert seit: Mar 2008
Gender: Male
Location: Gernsbach
Bewertung: 0
|
RE: [C++] Komplette Zeile einlesen - Posted At: 27.03.2008 11:36 PM
Jetzt verschluckt er das erste wort nach
d.h. kommt in der fertigen Datei z.b. "test.txt" nicht an dort steht dann
ob wohl ich gesagt habe er soll
eintragen
Dieser Beitrag wurde zuletzt bearbeitet: 27.03.2008 11:37 PM von nacramell.
|
|
|
|
 |
N43
Administrator
      
Beiträge: 237
Registriert seit: Jan 2004
Gender: Male
Location: Stuttgart
Bewertung: 0
|
RE: [C++] Komplette Zeile einlesen - Posted At: 27.03.2008 11:37 PM
Abend,
jap, das geline(cin, s) ließt die ganze Zeile ein. cout war nur zum Testen da 
Bei dir also
cout << "Bitte Inhalt der zu erstellenden Datei angeben\n";
cout << "Inhalt :";
getline(cin, Dinhalt);
cout << "Inhalt der Datei :\n" << Dinhalt << endl;
N43
www.programmers-corner.de
Debuggers don't remove Bugs, they only show them in Slow-Motion.
|
|
|
|
 |
nacramell
Junior Member

Beiträge: 37
Registriert seit: Mar 2008
Gender: Male
Location: Gernsbach
Bewertung: 0
|
RE: [C++] Komplette Zeile einlesen - Posted At: 27.03.2008 11:42 PM
hm
jetzt schliest er das programm nachdem ich den Datei namen eingegeben habe sofort wieder !!
#include <fstream>
#include <cstdlib>
#include <iostream>
#include <dirent.h>
#include <process.h>
#include <windows.h>
#include <shellapi.h>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
string Dname; //hier startet die Abfrage
//des Dateinamens und Art der datei
cout << "Bitte Datei Namen mit Endung txt, dat, oder anderen";
cout << "\neingeben\n";
cout << "Datei Name : ";
cin >> Dname;
cout << "Name der Datei + Endung:" << Dname << endl;
//ENDE
string Dinhalt; //hier startet die Abfrage
//des Inhalts der zu erstellenden Datei
cout << "Bitte Inhalt der zu erstellenden Datei angeben\n";
cout << "Inhalt :";
getline(cin, Dinhalt);
cout << "Inhalt der Datei :\n" << Dinhalt << endl;
//ENDE
//Das hier sollte nun eig die Datei
//mit Datei Namen und Art: Dname
//mit Inhalt: Dinhalt
//einfügen tuts aber net
fstream f;
f.open( Dname.c_str() , ios::out); //kein Fehler mehr !!
f << Dinhalt << endl;
f.close();
}
Dieser Beitrag wurde zuletzt bearbeitet: 27.03.2008 11:43 PM von nacramell.
|
|
|
|
 |
nacramell
Junior Member

Beiträge: 37
Registriert seit: Mar 2008
Gender: Male
Location: Gernsbach
Bewertung: 0
|
RE: [C++] Komplette Zeile einlesen - Posted At: 27.03.2008 11:46 PM
das heist wol das er nichts mehr zu tuhn hat er fragt mich nach dem dateien namen angeben nichts mehr (ich hab mal sleep(200) rein gemacht der schreibt alles also)
string Dinhalt; //hier startet die Abfrage
//des Inhalts der zu erstellenden Datei
cout << "Bitte Inhalt der zu erstellenden Datei angeben\n";
cout << "Inhalt :";
getline(cin, Dinhalt);
cout << "Inhalt der Datei :\n" << Dinhalt << endl;
//ENDE
die couts schreibt er !!
|
|
|
|
 |
N43
Administrator
      
Beiträge: 237
Registriert seit: Jan 2004
Gender: Male
Location: Stuttgart
Bewertung: 0
|
RE: [C++] Komplette Zeile einlesen - Posted At: 27.03.2008 11:55 PM
Was soll er denn danach noch machen?
Er schreibt den Text in die Datei und beendet sich dann.
N43
www.programmers-corner.de
Debuggers don't remove Bugs, they only show them in Slow-Motion.
|
|
|
|
 |
nacramell
Junior Member

Beiträge: 37
Registriert seit: Mar 2008
Gender: Male
Location: Gernsbach
Bewertung: 0
|
RE: [C++] Komplette Zeile einlesen - Posted At: 28.03.2008 12:00 AM
nochmal ? nach der ersten abfrage de namens bezüglich
sollte er eig nach dem inhalt fragen TUHT ER ABER NICHT ^^
ehm er gibt nur die ausgaben der couts mehr net
|
|
|
|
 |
N43
Administrator
      
Beiträge: 237
Registriert seit: Jan 2004
Gender: Male
Location: Stuttgart
Bewertung: 0
|
RE: [C++] Komplette Zeile einlesen - Posted At: 28.03.2008 12:03 AM
Hab das Programm mal probiert. Das letzte newline Zeichen lag noch im Eingabepuffer, weshalb er keine ganze Zeile gelesen hatte.
Setzt vor das getline ein cin.ignore(), dann geht's.
cout << "Bitte Inhalt der zu erstellenden Datei angeben\n";
cout << "Inhalt :";
cin.ignore();
getline(cin, Dinhalt);
cout << "Inhalt der Datei :\n" << Dinhalt << endl;
www.programmers-corner.de
Debuggers don't remove Bugs, they only show them in Slow-Motion.
|
|
|
|
 |
nacramell
Junior Member

Beiträge: 37
Registriert seit: Mar 2008
Gender: Male
Location: Gernsbach
Bewertung: 0
|
RE: [C++] Komplette Zeile einlesen - Posted At: 28.03.2008 12:05 AM
JUHU danke N43 jetzt funktionierts
DANKE
|
|
|
|
 |