Problem mit Stream



  • Moin,

    ich möchte in C++ eine Datei einlesen und die auf der Konsole ausgeben, doch irgendwie erhalte ich Fehlermeldungen vom Compiler. Kann mir bitte jemand weiterhelfen?

    Der Code:

    #include <cstdlib>
    #include <iostream>
    #include <string>
    #include <fstream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        ofstream stream;
        string file;
    
        cout << "Trage die Datei ein: ";
        cin >> file;
    
        stream.open(file); // Hier der Fehler
    
        if(!stream)
        {
            cout << "\a" << "Fehler!" << endl;
            return false;
        }
    
        // Einlesen der Datei ...
    
        stream.close();
    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

  • Administrator

    Ich denke ich sehe den Fehler, werde ihn dir aber vorenthalten, aus dem folgenden Grund:
    Du sagst uns auch die Fehlermeldung nicht :p

    Ich geb dir aber ein paar Tipps, weil ich jetzt nicht ganz so fies sein will:
    1. Es gibt keine implizite Konvertierung zwischen char const* und std::string
    2. Vielleicht findest du aber über die Forumsuche oder http://www.cplusplus.com/reference/ eine Lösung.

    Grüssli



  • ich bin mal ein spielverderber 😛

    stream.open( file.c_str() );
    

    open erwartet einen const char*
    du übergibst einen std::string
    das c_str gibt einfach den string als const char* zurück


  • Administrator

    Skym0sh0 schrieb:

    ich bin mal ein spielverderber 😛

    Ich möchte das nur mal korrigieren. Es geht hier nicht um ein Spiel, sondern darum, dass der Fragestellende ohne Umwege lernt, dass man die Fehlermeldung so exakt wie möglich anfügt. Sonst läuft man Gefahr, dass er beim nächsten Mal wieder die Fehlermeldung vergisst.

    Grüssli


Anmelden zum Antworten