ifstream mag meinen string nicht



  • moin leute (erster post hier)
    ich hab da ein prob mit ifstream:

    string FileName("bla.bin");
    ifstream ifFile;
    ifFile.open(FileName.c_str, ios::binary | ios::in);
    
    error C2664: 'void __thiscall std::basic_ifstream<char,struct std::char_traits<char> >::open(const char *,int)' : cannot convert parameter 1 from 'const char *(void) const' to 'const char *'
            There is no context in which this conversion is possible
    

    das ist nur ne vereinfachte version des ganzen. normalerweise wird der string FileName der methode, in der das alles steht, übergeben.

    ach so: ich benutze msvc.



  • c_str ist eine Funktion. Der Aufruf muß also FileName.c_str**()** heißen. Wenn man's weiß kann man danach auch die Fehlermeldung des Compilers recht gut lesen. Er beschwert sich nämlich genau darüber, daß die Funktion nicht in einen char* konvertierbar ist.

    MfG Jester



  • thx für die schnelle hilfe!



  • Hallo,

    du kannst dir hier ios::in sparen, da du mit einem ifstream arbeitest.

    mfg
    v R


Anmelden zum Antworten