Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » C++ Buchstaben und Leerzeichen in File schreiben

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.09.2004, 12:18 Uhr
~cout
Gast


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!
----------------------------------------------------------------------------------------------------

C++:
// 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::out);
    
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::out);

    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 Anonym                 |" << 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;
}


[edit virtual]Codetags bitte demnächst selber einfügen![/cpp]

Dieser Post wurde am 13.09.2004 um 15:20 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.09.2004, 15:21 Uhr
virtual
Sexiest Bit alive
(Operator)


Nimm statt

C++:
cin>>x



C++:
std::getline(std::cin, x);


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.09.2004, 16:12 Uhr
Lensflare



oder das hier:

C++:
char text[] = "Hello World";

fprintf(datei,"%s",text);


--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.09.2004, 16:21 Uhr
(un)wissender
Niveauwart


Nein, virtuals ist gut, dass hier ist c++ und nicht C!
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.09.2004, 16:32 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat von (un)wissender:
Nein, virtuals ist gut, dass hier ist c++ und nicht C!

Vor allem ist fprintf die andere Richtung...
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.09.2004, 23:12 Uhr
(un)wissender
Niveauwart


lol, ja, stimmt, ich hatte schon einen Parseerror als ich erkannte, dass das c ist.
Muss am Wochenende mal an meinem Gehirn arbeiten...nur die Starken werden überleben!
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: