Problem bei ifstream
-
hi,
ich hab ein Problem und zwar bekomme ich bie diesem Programm den Text aus der Datei nicht ausgelesen. Obwohl etwas darin steht. Kann mir jemand helfen?
Hier der Code
#include <fstream.h> #include <conio.h> int main() { char fileName[80]; char buffer[255]; // fuer die Benutzereingebe cout << "Dateiname: "; cin >> fileName; ofstream fout(fileName); // zum Schreiben oeffnen //fout << "Diese Zeile wird direkt in die Datei geschrieben...\n"; cout << "Bitte Text fur Datei eingeben: "; cin.ignore(1,'\n'); // Neue Zeiel nach dem Dateinamen entfernen cin.getline(buffer, 255); fout << buffer << "\n"; // und in die Datei schreiben fout.close(); ifstream fin(fileName); // zum Lesen erneut oeffnen cout << "So lautet der Inhalt der Datei:\n"; char ch; while(fin.get(ch)); cout << ch; cout << "\n***Ende des Dateiinhaltes***\n"; fin.close(); getch(); return 0; }
-
Hi Folcan,
steht zwar alles in der FAQ, aber ich würde es so machen:
#include <fstream> // keine antiquierten header benutzen !! #include <iostream> // fehlte für die ausgabe #include <string> // fuer zeilenweises auslesen using namespace std; // oder anstelle von cout und cin std::cout und std::cin benutzen. int main(int ac, char *av[]) { char fileName[80]; char buffer[255]; // fuer die Benutzereingebe cout << "Dateiname: "; cin >> fileName; ofstream fout(fileName); // zum Schreiben oeffnen //fout << "Diese Zeile wird direkt in die Datei geschrieben...\n"; cout << "Bitte Text fur Datei eingeben: "; cin.ignore(1,'\n'); // Neue Zeiel nach dem Dateinamen entfernen cin.getline(buffer, 255); fout << buffer << "\n"; // und in die Datei schreiben fout.close(); fstream fin(fileName); // braucht kein ifstream zu sein if (fin.is_open()) // öffnen geglückt { string line; // für's zeilenweise ausgeben while (getline(fin, line)) // lies genau eine Zeile { cout << line << endl; // gib sie aus cout << "\n***Ende des Dateiinhaltes***" << endl; } } else // fehler abfangen und benutzer informieren { cout<<"Konnte nicht geoeffnet werden!"<<endl; return 1; } getchar(); // reicht hier auch, dann ist es sogar unabhängig // von Borland return 0; }Gruß Mea