Problem beim Dateinamen generieren....



  • Hallo C-Freunde,

    habe da ein Problem und bin auf der Suche nach Hilfe:

    Ich würde gerne Dateien aufrufen und beschreiben, deren Dateinamen aber nummeriert sind, d.h.:
    ich habe ein Zahl

    int v;
    v =5

    und einen string:

    char b[50] = "c:/windows/

    und möchte jetzt

    eine datei mit dem namen "c:/windows/5.dat" öffnen, wobei die 5 der wert von v ist.

    Leider sind alle meine bemühungen (d.h. die verwendung von itoa() , strcpy(), strcat()) fehlgeschlagen und ich weiss nicht warum.

    hier mein letzter versuch:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main(void)
    {
    int v;
    v = 5;
    
    char b[] = "e:/plot2/";
    char c[] = "";
    char d[] = ".dat";
    
    itoa(v,c,10);
    strcat(b,c);
    printf("%s",b);
    getch();
    
    strcat(b,d);
    
    FILE *datei;
    datei = fopen(b, "w+t");
    


  • itoa() ist keine offizielle Ansi-Funktion - und selbst wenn, sind die verwendeten char-Arrays zu klein für die Daten, die du dort reinpacken willst (wenn du keine Größe vorgibst, reserviert C gerade genug Platz für den String, mit dem du das Array initialisiert hast) - also werden bei deiner Datenumrechnung die Nachbar-Arrays überschrieben.

    btw, ich würde ja den direkten Weg vorschlagen - sprintf(filename,"e:/plot2/%d.dat",v);


Anmelden zum Antworten