char pointers für Dateinamen mit int-Wert anhängen



  • hallo,

    um eine Reiche von Dateien in einer Schleife zu schreiben,
    sollen die geschriebenen Dateinamen mit einem Wort und anschließendem int-Wert
    versehenwerden (zb test1.txt test2.txt ...).

    Wie kann ich bei einer Zeichenkette "test" in einem const char * Pointer einen Int-Wert und eine weitere Zeichenkette ".txt" anhängen ?



  • Du kannst Dir den String mit einem stringstream zusammenbauen.

    #include <iostream>
    #include <string>
    #include <sstream>
    
    void foo(char const* wenn_es_ein_zeiger_sein_muss)
    {
      std::cout << wenn_es_ein_zeiger_sein_muss << '\n';
    }
    
    int main()
    {
      for (int i=0; i<10; ++i) {
        std::stringstream ss;
        ss << "test" << i << ".txt";
        std::string s = ss.str();
        foo(s.c_str());
      }
    }
    


  • Und wenn du bei char-Arrays bleiben musst, kannst du sprintf benutzen (aber achte darauf, dass der Zielstring genug Speicher bietet, um sich, das Anhängsel und die terminierende Null aufzunehmen).


Anmelden zum Antworten