Variabler Dateiname mit fopen ??



  • Hallo,

    hab eine wahrscheinlich ganz einfache Frage. Ich will eine Datei zum schreiben öffnen und dieser Datei einen Namen einer bereits geöffneten übergeben.

    fopen("übergebener Dateiname",w+);

    Ich habe den zu übergebenen Dateinamen als String bereits im Programm abgespeichert und müsste ihn nur noch irgendwie an fopen() übergeben, oder?

    Bin halt ein Anfänger 😕

    Vielen Dank schonmal!!!



  • char* Dateiname = "stegni.xml";
    fopen(Dateiname, "w+");
    

    😕 😕 😕



  • Soweit habe ich das auch schon hinbekommen. Ich lese in dem Programm unterschiedliche dateien mit unterschiedlichen dateinamen ein und würde das programm gerne so flexibel gestalten, das ich je nach eingegebenem dateinamen diesen in meine neue datei übernehme.

    Beispiel: ich lese eine datei test.txt ein, überneheme test.txt und setze zur unterscheidung noch ein string vorne dran.

    Ergebnis: texttest.txt ( das sollte er mir z.B. als neuen Programmnamen ausgeben)

    Vielen Dank 😕



  • #include <stdio.h>
    
    int main() {
        char Filename[256];
        fgets(Filename, 256, stdin);
    
        char FilenameMitVorneWasDran[512];
        sprintf(FilenameMitVorneWasDran, "test%s", Filename);
    
        printf(FilenameMitVorneWasDran);
    
        fopen(FilenameMitVorneWasDran, "w+");
        // ...
        return 0;
    }
    


  • Ich glaub ich bin zu blöd dafür :o(

    Ich bekomm es nicht mal hin den eingelesenen Dateinamen zu übergeben an den neu zu öffnenden, ohne irgendwas vornedran zu kopieren.

    Ein Programmteil von mir:

    int main (short int argc, char *argv[])

    sscanf (argv[1], "%s", infile1); /* schreibe 1. Dateiname in infile1 /
    sscanf (argv[2], "%s", infile2); /
    schreibe 2. Dateiname in infile2 */

    ....
    ....
    ....

    diff_red = fopen(/home/stegni/infile1,"wb"); /* schreibe datei in ein anderes verzeichnis mit dem
    identischen dateinamen */
    if (diff_red==NULL)
    {
    printf("\n");
    printf("DPX_IO: Fatal Error.\n");
    printf("Cannot open the input file: RED-DIFF!");
    exit (EXIT_FAILURE);
    }



  • Und...? Was sollen wir jetzt dazu sagen? 😕



  • Wie bekomme ich den Dateinamen, also den Inhalt von infile1, übertragen auf meine neu zu öffnende Datei, die ich mit fopen() öffne.
    wenn ich printf("%s",infile1); eingebe - bekomme ich den Dateinamen z.B. test.dpx ausgegeben. Die neue Datei würde ich gerne genauso vom Namen her übernehmen (test.dpx), nur in ein anderes Verzeichnis schreiben, da ich in dieser Datei änderungen vorgenommen habe. Damit ich die zugehörigen Änderungen später den originalen wieder zuordnen kann, sollen diese genauso heißen.

    Gruß!


Anmelden zum Antworten