Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » In Datei schreiben - Frage zu einem Beispiel

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
09.01.2006, 13:00 Uhr
Noob2k5



Im E-Book C++ in 21 Tagen ist folgendes Beispiel zum reinschreiben in eine Datei drin:

C++:
1:     #include <fstream.h>
2:     int main()
3:     {
4:        char fileName[80];
5:        char buffer[255];    // fuer die Benutzereingabe
6:        cout << "Dateiname: ";
7:        cin >> fileName;
8:
9:        ofstream fout(fileName);  // zum Schreiben oeffnen
10:       fout << "Diese Zeile wird direkt in die Datei geschrieben...\n";
11:       cout << "Bitte Text fuer die Datei eingeben: ";
12:       cin.ignore(1,'\n');  // Neue Zeile nach dem Dateinamen entfernen
13:       cin.getline(buffer,255);  // Benutzereingabe einlesen
14:       fout << buffer << "\n";   // und in die Datei schreiben
15:       fout.close();     // Datei schliessen, bereit zum erneuten Oeffnen
16:
17:       ifstream fin(fileName);    // zum Lesen erneut oeffnen
18:       cout << "So lautet der Inhalt der Datei:\n";
19:       char ch;
20:       while (fin.get(ch))
21:          cout << ch;
22:
23:       cout << "\n***Ende des Dateiinhalts.***\n";
24:
25:       fin.close();            // Ordnungssinn zahlt sich aus
26:     return 0;
27:    }


Als Erklärungstext zur Zeile 12 steht da:

Zitat:

Das Zeichen für Neue Zeile, das von der Eingabe des Dateinamens übrig geblieben ist, wird in Zeile 12 gelöscht und die Benutzereingabe wird vorerst in einem Puffer gespeichert (Zeile 13).


Was ich nicht ganz verstehe ist folgendes:

In Zeile 10 schreibe ich ja bereits etwas in die datei "fout" hinein, aber in Zeile 12 entferne ich ein '\n' am Endes des Dateinames - welche Sinn hat das zu diesem Zeitpunkt den noch? Ich hab doch bereits was in die Dateig eschrieben. Ist es schlimm einen Dateinamen zu haben der am Ende ein Satzendezeichen '\n' hat?

Aus dem Text der im Ebook steht werde ich nicht schau - hoffe ihr könnt mir da was helfen

Gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.01.2006, 13:08 Uhr
Tommix



Hallo,
das '\n' hängt nicht am Dateinamen, sondern steht noch im Eingabepuffer. Es würde in der nächsten Eingabe (also buffer) landen, wenn Du es nicht entfernst.

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.01.2006, 13:28 Uhr
Noob2k5




Zitat von Tommix:
Hallo,
das '\n' hängt nicht am Dateinamen, sondern steht noch im Eingabepuffer. Es würde in der nächsten Eingabe (also buffer) landen, wenn Du es nicht entfernst.

Gruß, Tommix


Ahso, das hätte zur Folge das ich dann gar nichts mehr eingeben könnte, weil der puffer komplett ins Feld "Buffer" entleert würde und das erste Zeichen das '\n' ist?!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.01.2006, 13:34 Uhr
Tommix



Jo, das Programm rauscht dann bis zum Ende durch. Kann einen zum Wahnsinn treiben, wenn man nicht weiß, woran's liegt.

- Tommix
 
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: