in char eine variable einfügen



  • Moin habe ein kleines Problem möchte eine datei mit verschiedenen namen erstellen. Diese werden durch eine variable erstellt.

    habe mir was überlegt.

    //Auslesen der Systemzeit
    time_t zeit;
    time(&zeit);

    char *ff=ctime(&zeit);
    char *neuedatei ="C:\\Optimierung2\\results\\backup\\backup";
    for(int i=35;i<4;i++)
    {
    neuedatei[i] =ff[i-35];
    }

    läuft leider nicht...die datei erstellt er leider heißt sie backup und nicht systemzeit...



  • Hi,

    probiere es mal so, ich hoffe es hilft dir da ich nur C++ ein wenig kann und C so gut wie gar nicht:

    #include <stdio.h>
    #include <time.h>
    
    int main()
    {
        time_t my_time;
        time(&my_time);
        char str[256];
        char* prefix = "C:\\foo\\bar\\backup";
        sprintf(str, "%s-%s", prefix, ctime(&my_time));
    
        printf("%s", str );
        return 0;
    }
    

    Gruß Blue-Tec



  • #include <sstream>
    #include <fstream>
    #include <ctime>
    
    using namespace std;
    
    int main () {
    
      // Zeitstempel
      time_t timeStamp = time(0);
      tm* time = localtime(&timeStamp);
    
      // Filename: Backup_YYYYMMDD.bak
      stringstream fileName;
      fileName << "Backup_" << time->tm_year+1900 << time->tm_mon+1 << time->mday << ".bak";  
    
      // Datei öffnen bzw. erstellen, wenn nicht vorhanden
      fstream file (fileName.str(), fstream::out);
    
      // In Datei schreiben... 
      file << "Schreibe dies in die Datei!";
    
      file.close();
      return 0;
    }
    


  • @Roger Wilco habe ein kleines problem.

    // Zeitstempel
    time_t timeStamp = time(0);
    tm* time = localtime(&timeStamp);

    // Filename: Backup_YYYYMMDD.bak
    stringstream fileName;
    fileName << "C:\\Optimierung2\\results\\backup\\backup_" << time->tm_year+1900 << time->tm_mon+1 << time->tm_mday << ".xtp";

    // Datei öffnen bzw. erstellen, wenn nicht vorhanden
    fstream file (fileName.str(), fstream::out);
    file.close();

    error C2664: 'std::basic_fstream<_Elem,_Traits>::basic_fstream(const char *,std::ios_base::openmode,int)': Konvertierung des Parameters 1 von 'std::basic_string<_Elem,_Traits,_Ax>' in 'const char *' nicht möglich
    1> with
    1> [
    1> _Elem=char,
    1> _Traits=std::char_traits<char>
    1> ]
    1> Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden

    ich möchte nur die datei umbennen, wollte es mit rename(altername,fileName.str()) versuchen. kriege es auch nicht hin.



  • fstream file (fileName.str().c_str(), fstream::out);
    


  • sehr gut, vielen dank.

    es läuft 🙂 👍 👍 👍


Anmelden zum Antworten