Fehler beim Einlesen einer Datei via ifstream



  • Hey Com,

    ich habe ein Programm geschrieben, dass einen String aus einer Datei ausliest und in eine andere reinschreibt. Das Schreiben läuft Fehlerlos, nur das Lesen macht noch Probleme. Immer wenn ich die Lesefunktion ausführe stürzt das Programm ab (das Programm funktioniert nicht mehr. Es wird nach einer Lösung für das Problem gesucht). Die Funktion sieht folgendermaßen aus

    HRESULT ReadFromLog(char* chString)
    {
    	ifstream f1("test.txt");
    	if(!f1.is_open())
    	{
    		return 1;
    	}
    	f1 >> chString;
    	f1.close();
    	return 0;
    }
    

    Hoffe jemand kann mir helfen

    Vielen Dank



  • Das hängt wahrscheinlich damit zusammen, dass der aufrufende Code keinen oder zuwenig Speicher für den eingelesenen String zur Verfügung stellt.

    Hier eine bessere Variante, mit minimaler Änderung:

    #include <string>  // für std::string
    // ... weitere Header.. hier weggelassen
    
    HRESULT ReadFromLog(std::string& chString) 
    { 
         ifstream f1("test.txt"); 
         if(!f1.is_open()) 
         { 
             return 1; 
         } 
         f1 >> chString; 
         f1.close(); 
         return 0; 
    }
    
    int main()
    {
         std::string s;
         HRESULT result = ReadFromLog(s);
    }
    

    BTW: Du bist im falschen Forum. Hier wäre eigentlich C++/CLI, eine .NET Sprache.



  • Funktioniert Prima!

    Vielen Dank


Anmelden zum Antworten