Dateien auslesen und daten in array speichern
-
ich meinte dass ein array pro datensatz, welches ich aber während der abfrageschleife auswerte und deshalb kann es danach wieder neu beschrieben werden.
wie kann ich am besten eine zeile auslesen, wie dein ansatz war. mit while(getline(xyz), 30) geht das irgendwie nicht
-
string zeile; ifstream datei("daten.txt"); while(getline(datei,zeile)) { verarbeite den Inhalt von zeile }mit while(getline(xyz), 30) geht das irgendwie nicht
Ja, da mußt du auch darauf achten, wie du die Klammern setzt

-
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