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 🙄


Anmelden zum Antworten