ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
1400
1400
EMPFEHLEN
-
14.01.10 17:05 #1blong1550 Tutorials.de Gastzugang
Hallo,
ich habe folgende Aufgabe bekommen.
string readFile (string filename): Diese Funktion liest die Datei vom Namen
filename ein, speichert den Inhalt als String ab und gibt diesen zur¨uck.
vorgegeben haben wir eine text.txt.
Meine Funktion sind bisher so aus:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
string readFile (string filename) { string inhalt; ifstream quelle; quelle.open(filename.c_str()); if (!quelle) { cerr << filename << " kann nicht geöffnet werden!\n"; exit(-1); } char ch; while (quelle.get(ch)) { cout << ch; }
Das Problem ist, es funktioniert bei der langen Textdatei nicht mehr und außerdem speichert er es ja nicht in einem String.
Nun tue ich mich etwas schwer und weiß nicht wie ich die komplette textdatei als string speichere?
Grüße
-
14.01.10 17:09 #2
Vllt. führen zu große Textdateien zu einem Pufferüberlauf?
Du kannst auch gleich den ganzen Inhalt lesen mit dem Operater >>:
Code :1 2 3
ifstream f('text.txt'); string S; f >> S;
Habe jetzt ohne Fehler-Überprüfung gemacht. Müsste aber klappen!mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
14.01.10 17:20 #3blong1550 Tutorials.de Gastzugang
mh ne das funktioniert nicht
initializing argument 1 of `std::basic_ifstream<_CharT, _Traits>::basic_ifstream(const char*, std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>]'
invalid conversion from `int' to `const char*'
Keine Ahnung was da lost ist.
-
14.01.10 18:02 #4blong1550 Tutorials.de Gastzugang
habs jetzt selbst geschafft. ich weiß nicht ob es nicht noch kürzer geht aber so geht es wenigstens -.-
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
string readFile (string filename) { string zeile,inhalt ; ifstream quelle; quelle.open(filename.c_str()); if (!quelle) { cerr << filename << " kann nicht geöffnet werden!\n"; exit(-1); } while (!quelle.eof()) { getline(quelle,zeile); inhalt = inhalt + zeile; } return inhalt; }
-
14.01.10 21:28 #5
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Der >> Operator liest aber nur ein Wort ein (also bis zum nächsten Leerzeichen).
ComFreek hat fälschlicherweise statt doppelten Anführungszeichen einfache Anführungszeichen verwendet.
Um eine Datei komplett einzulesen:
GrußCode cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
string readFile (const string& filename) { ifstream quelle(filename.c_str()); if (quelle.is_open()) { stringbuf buffer; if (quelle >> &buffer) { return buffer.str(); } else { // I/O Fehler } } else { // Datei existiert nicht oder kein Zugriff möglich } }
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
Ähnliche Themen
-
Textdatei auslesen und speichern
Von awortmeier im Forum Java GrundlagenAntworten: 7Letzter Beitrag: 23.12.10, 08:31 -
[C] String in eine Textdatei speichern.
Von Zumlin im Forum C/C++Antworten: 3Letzter Beitrag: 13.12.06, 12:34 -
String in Textdatei speichern
Von JackBauer8283 im Forum JavaAntworten: 2Letzter Beitrag: 12.12.06, 17:30 -
Brauche hilfe ::>Textdatei auslesen und String verändern
Von KSebi im Forum PHPAntworten: 2Letzter Beitrag: 20.08.05, 17:30 -
textdatei über php auslesen und als log datei speichern
Von tbopet im Forum PHPAntworten: 10Letzter Beitrag: 16.05.04, 23:11





Zitieren


Login






