Datei öffnen geht nicht



  • Hallo ich wollte eine Datei öffnen und ausgeben, hier der Code Teil zum öffnen:

    char* name;
    
    void open()
    {
    	cout<<"Name: ";
    	cin>>name;
    
    	ifstream indat(name);
    	while (indat.good())
    		cout<<(char)indat.get();
    	indat.close(); 
    }
    

    wenn ich es ausführe kommt

    [quote="Speicherzugriffsfehler"]

    Ich hab Linux hab er auch als Root versucht die Datei die ich auslessen will liegt im gleichen Ordner wie das Prog und beim Compielieren gibts keine Fehler.



  • hast du vorher speicher für "name" reserviert? das musst du machen, ansonsten wird cin versuchen, die eingabe sonstwohin* zu schreiben.
    (es gibt zwar leute, die behaupten, man müsse unter linux keinen speicher reservieren... aber sprechen wir nicht weiter drüber. 🙄 :D)

    am besten ist, du nimmst ::std::string und dann "name.c_str()" als parameter für den ifstream-konstruktor.

    ----
    *das willst du nicht 😉



  • du kannst statt

    char *name;
    

    auch

    char name[FILENAME_MAX+1];
    

    schreiben.


Anmelden zum Antworten