Dateiname mit Variable ändern.



  • Warum funktioniert dieser Code nicht?

    fstream Profilnummer;
    Profilnummer.open("Username_" << Zahl << ".txt", ios::out);
    Profilnummer >> Username;
    Profilnummer.close();
    

    Wie ist es möglich die Datei "Username_X.txt" zu öffnen wenn eine Variable die Zahl angibt.


  • Mod

    Vorausgesetzt Zahl ist ein String: Nimm '+' statt '<<'. Vorausgesetzt Zahl ist irgendetwas anderes: Setz den Namen erst mit einem Stringstream zusammen.

    Warum das so nicht geht: Da hast du einiges missverstanden, wie Ausgabe in C++ funktioniert und wie allgemein Datentypen, Objekte und Operatoren zueinander in Beziehung stehen. Schlechtes Buch? Womit lernst du? (Das Benutzen von fstream zum reinen Lesen (oder doch Schreiben? Der code widerspricht sich selber) und das close an der Stelle deuten übrigens auch auf ein schlechtes Lehrwerk hin)



  • Edit: gelöscht, um den Thread zu verkürzen.



  • In C++ verkettest du Strings nicht mit dem shift-operator.
    Pack das Ganze in einen Stringstream:

    ifstream Profilnummer; ///Du willst einen ifstream
    {
         std::ostringstream stream;
         stream << "Username_" << Zahl << ".txt";
         Profilnummer.open( stream.str().c_str() );
    }
    

    Edit: Eisflamme, wieso flushst du den Stream!?



  • mach es so:

    {
            int Zahl = 42;
            ostringstream name; // erfordert #include <sstream>
            name << "Username_" << Zahl << ".txt";
            ofstream Profilnummer( name.str().c_str() );
            Profilnummer << "Username";
        }
    


  • Oder mit C++11:

    Profilnummer.open("Username_" + std::to_string( Zahl  ) + ".txt", ios::out);
    

Log in to reply