Hallo, erst mal da ich neu hier bin!
Also, zuerst einmal ich programmiere erst seit gut einer Woche darum bitte nicht auslachen!
Mein Problem:
Ich habe einen "Editor" für Dos-Prompt geschrieben.
Mit den Funktionen: Datei anlegen und beschreiben
Datei löschen
etc.
Nun meine Frage: Wie kann ich einen Text in eine Datei schreiben, heißt mit Leerzeichen(ohne funktioniert es ja).
Der Code:
Achtung: Es sind noch nicht alle switch anweisungen mit einer Funktion ausgestattet!
----------------------------------------------------------------------------------------------------
// Editor für Ein und Ausgabe
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
struct editor
{
string x;
string tmp;
char y;
};
editor read_in()
{
ifstream dat_ein;
editor einlesen;
cout << endl;
cout << "Geben Sie den Namen\\Pfad zur Datei ein: ";
cin >> einlesen.x;
cout << endl;
dat_ein.open(einlesen.x.c_str(), ios_base:
ut);
if(!dat_ein)
{
cout << "Datei konnte nicht geöffnet werden: " << endl;
cout << endl;
}
while(!dat_ein.eof())
{
dat_ein.get(einlesen.y);
cout << einlesen.y;
}
dat_ein.close();
fflush(stdin);
getchar();
return einlesen;
}
/* Hier liegt das Problem! und zwar bei:
cout << "Text eingeben: ";
cin >> lesen.tmp;
dateiname << lesen.tmp << endl;
Wenn ich einen Text eingebe werden nur die Buchstabe bis zu einem Leerzeichen
in die Datei geschrieben! Soll ich es mit einem char Datentype versuchen, ja? aber wie?*/
editor write_in()
{
ofstream dateiname;
editor lesen;
cout << endl;
cout << "Geben Sie den Pfad an in dem Sie die Datei amlegen wollen: ";
cin >> lesen.x;
cout << endl;
dateiname.open(lesen.x.c_str(), ios_base:
ut);
if(!dateiname)
{
cout << "Datei kann nicht angelegt werden," << endl;
cout << "bzw. der Pfad >> " << lesen.x << " << existiert nicht!" << endl;
}
cout << "Text eingeben: ";
cin >> lesen.tmp;
dateiname << lesen.tmp << endl;
return lesen;
}
int main() {
int befehl;
cout << "\t\t\t-----------------------------------" << endl;
cout << "\t\t\t| Editor mit folgenden Funktionen:|" << endl;
cout << "\t\t\t| Copyright Jakob Buchgraber |" << endl;
cout << "\t\t\t-----------------------------------" << endl;
cout << endl;
cout << "Datei einlesen und ausgeben\t\t<1>" << endl;
cout << "Datei erstellen und beschreiben\t\t<2>" << endl;
cout << "Datei erweitern\t\t\t\t<3>" << endl;
cout << "Datei ueberschreiben\t\t\t<4>" << endl;
cout << "Programm beenden\t\t\t<5>" << endl;
cout << endl;
cout << "Ihre Eingabe: ";
cin >> befehl;
switch(befehl)
{
case 1:
cout << endl;
cout << "Datei einlesen und ausgeben" << endl;
read_in();
break;
case 2:
cout << endl;
cout << "Datei erstellen und beschreiben" << endl;
write_in();
break;
case 3:
cout << endl;
cout << "Datei erweitern" << endl;
break;
case 4:
cout << endl;
cout << "Datei überschreiben" << endl;
break;
case 5:
cout << endl;
cout << "Programm beenden" << endl;
break;
default:
cout << endl;
cout << "Ungueltige Eingabe" << endl;
break;
}
return 0;
}
Also, zuerst einmal ich programmiere erst seit gut einer Woche darum bitte nicht auslachen!
Mein Problem:
Ich habe einen "Editor" für Dos-Prompt geschrieben.
Mit den Funktionen: Datei anlegen und beschreiben
Datei löschen
etc.
Nun meine Frage: Wie kann ich einen Text in eine Datei schreiben, heißt mit Leerzeichen(ohne funktioniert es ja).
Der Code:
Achtung: Es sind noch nicht alle switch anweisungen mit einer Funktion ausgestattet!
----------------------------------------------------------------------------------------------------
// Editor für Ein und Ausgabe
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
struct editor
{
string x;
string tmp;
char y;
};
editor read_in()
{
ifstream dat_ein;
editor einlesen;
cout << endl;
cout << "Geben Sie den Namen\\Pfad zur Datei ein: ";
cin >> einlesen.x;
cout << endl;
dat_ein.open(einlesen.x.c_str(), ios_base:
if(!dat_ein)
{
cout << "Datei konnte nicht geöffnet werden: " << endl;
cout << endl;
}
while(!dat_ein.eof())
{
dat_ein.get(einlesen.y);
cout << einlesen.y;
}
dat_ein.close();
fflush(stdin);
getchar();
return einlesen;
}
/* Hier liegt das Problem! und zwar bei:
cout << "Text eingeben: ";
cin >> lesen.tmp;
dateiname << lesen.tmp << endl;
Wenn ich einen Text eingebe werden nur die Buchstabe bis zu einem Leerzeichen
in die Datei geschrieben! Soll ich es mit einem char Datentype versuchen, ja? aber wie?*/
editor write_in()
{
ofstream dateiname;
editor lesen;
cout << endl;
cout << "Geben Sie den Pfad an in dem Sie die Datei amlegen wollen: ";
cin >> lesen.x;
cout << endl;
dateiname.open(lesen.x.c_str(), ios_base:
if(!dateiname)
{
cout << "Datei kann nicht angelegt werden," << endl;
cout << "bzw. der Pfad >> " << lesen.x << " << existiert nicht!" << endl;
}
cout << "Text eingeben: ";
cin >> lesen.tmp;
dateiname << lesen.tmp << endl;
return lesen;
}
int main() {
int befehl;
cout << "\t\t\t-----------------------------------" << endl;
cout << "\t\t\t| Editor mit folgenden Funktionen:|" << endl;
cout << "\t\t\t| Copyright Jakob Buchgraber |" << endl;
cout << "\t\t\t-----------------------------------" << endl;
cout << endl;
cout << "Datei einlesen und ausgeben\t\t<1>" << endl;
cout << "Datei erstellen und beschreiben\t\t<2>" << endl;
cout << "Datei erweitern\t\t\t\t<3>" << endl;
cout << "Datei ueberschreiben\t\t\t<4>" << endl;
cout << "Programm beenden\t\t\t<5>" << endl;
cout << endl;
cout << "Ihre Eingabe: ";
cin >> befehl;
switch(befehl)
{
case 1:
cout << endl;
cout << "Datei einlesen und ausgeben" << endl;
read_in();
break;
case 2:
cout << endl;
cout << "Datei erstellen und beschreiben" << endl;
write_in();
break;
case 3:
cout << endl;
cout << "Datei erweitern" << endl;
break;
case 4:
cout << endl;
cout << "Datei überschreiben" << endl;
break;
case 5:
cout << endl;
cout << "Programm beenden" << endl;
break;
default:
cout << endl;
cout << "Ungueltige Eingabe" << endl;
break;
}
return 0;
}