2010-03-15 8 views
4

S'il vous plaît voir ce morceau de code:Comment créer des noms de fichiers personnalisés dans C?

#include<stdio.h> 
#include<string.h> 
#include<stdlib.h> 

int main() { 
    int i = 0; 
    FILE *fp; 
    for(i = 0; i < 100; i++) { 
     fp = fopen("/*what should go here??*/","w"); 
     //I need to create files with names: file0.txt, file1.txt, file2.txt etc 
     //i.e. file{i}.txt 
    } 
} 

Répondre

10
for(i = 0; i < 100; i++) { 
    char filename[sizeof "file100.txt"]; 

    sprintf(filename, "file%03d.txt", i); 
    fp = fopen(filename,"w"); 
} 
+3

remarquez comment il a mis '% 03d'. à strictement parler, vous avez juste besoin de '% d' pour faire ce que vous avez demandé, mais cela va le remplir à 3 chiffres avec les 0 principaux, de sorte qu'ils seront triés correctement par votre système d'exploitation (bien ... Windows est plutôt intelligent à ce sujet , mais encore, les 0 principaux sont cool!) – mpen

0

Cela devrait fonctionner:

for(i = 0; i < 100; i++) { 
    char name[12]; 
    sprintf(name, "file%d.txt", i); 
    fp = fopen(name, "w"); 
} 
0

Utilisez snprintf() avec "file%d.txt" and I` pour générer le nom du fichier.

0

Regardez dans snprintf.

1
char szFileName[255] = {0}; 
for(i = 0; i < 100; i++) 
{ 
    sprintf(szFileName, "File%d.txt", i); 
    fp = fopen(szFileName,"w"); 
} 
+0

uhm ... moi pense que vous avez oublié d'éditer une ligne lorsque vous copiez collé;) – mpen

+0

merci pour les commentaires, et c'est agréable d'être rapide sur les votes ... peut-être essayer de recharger répondre plus rapidement la prochaine fois – YeenFei

+0

255 est un tampon assez grand. Au moins votre solution va bien pour les valeurs extrêmement grandes de 'i'. – dreamlax

Questions connexes