Dateien auslesen und daten in array speichern
-
stimmt, warum bin da nicht selst drauf gekommen??
-
habs jetzt ausprobiert, geht aber nicht. habe bestimmt wieder einen einfachen fehler gemacht.
#include <iostream> // wegen cout cin #include <fstream> // wegen Dateistreamobjekt #include <string> using namespace std; int main() { ifstream fin("datei.txt"); char akt_zeile[30]; while(fin.getline(akt_zeile, 30)) { cout << akt_zeile << endl;; } fin.close(); system("PAUSE"); return 0; }da wird nur die erste zeile der datei ausgegeben
-
Erstmal solltest du doch lieber string's verwenden (ist sicherer als char[]). Und dann schau dir mal im Debugger an, was das Programm eigentlich macht - ich sehe auf jeden Fall keinen gravierenden Fehler in dem Programm.
-
bei string kommt bei mir noch ein extra fehle, dass char nicht in string umgewandelt werden kann
-
1. WELCHER FEHLER?!!

2. Benutze getline so wie CStoll es vorschlug, dann sollte es klappen.
-
bei dem quellcode:
#include <iostream> // wegen cout cin #include <fstream> // wegen Dateistreamobjekt #include <string> using namespace std; int main() { ifstream fin("datei.txt"); string akt_zeile; while(fin.getline(akt_zeile, 30)) { cout << akt_zeile << endl;; } fin.close(); system("PAUSE"); return 0; }kommen folgende fehler (microsoft visual c++ 6):
--------------------Konfiguration: main - Win32 Debug--------------------
Kompilierung läuft...
main.cpp
C:\Dokumente und Einstellungen\praktikum\Eigene Dateien\ausschlagerkennung\main.cpp(11) : error C2664: 'class std::basic_istream<char,struct std::char_traits<char> > &__thiscall std::basic_istream<char,struct std::char_traits<char> >::getline(char *
,int)' : Konvertierung des Parameters 1 von 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' in 'char *' nicht moeglich
Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden
C:\Dokumente und Einstellungen\praktikum\Eigene Dateien\ausschlagerkennung\main.cpp(11) : fatal error C1903: Weiterverarbeitung nach vorhergehendem Fehler nicht moeglich; Kompilierung wird abgebrochen.
Fehler beim Ausführen von cl.exe.main.exe - 2 Fehler, 0 Warnung(en)
-
Versuchs mal so
#include <iostream> // wegen cout cin #include <fstream> // wegen Dateistreamobjekt #include <string> using namespace std; int main() { ifstream fin("datei.txt"); string akt_zeile; while(getline(fin, akt_zeile)) { cout << akt_zeile << endl;; } fin.close(); system("PAUSE"); return 0; }
-
reichs_gast schrieb:
fin.getline(akt_zeile, 30)wlkikiv: Ich sagte "getline(fin,akt_zeile)"

(die Memberfunktion arbeitet tatsächlich nur mit char-Arrays, für das Einlesen in Strings gibt es die globale Funktion getline())
-
Ich les ständig system("PAUSE"), dabei gibt es doch so viel bessere Alternativen.
-
@reichs:
Du hättest beim Lesen meines Beitrags nicht nach 1. aufhören sollen, dann hätte sich der Rest erledigt