2014-10-28 31 views
1

我想生成60个文件,program0.txt,..,program59.txt。 我该怎么做?如何在C中生成多个文件

我尝试:

FILE *fp[60]; 

for(i=0;i<60;i++){ 

    fp[i]=fopen("program.txt","w"); 

    fprintf(fp[i],"zeros=["); 
} 
+0

修复文件名,不要忘记在完成后关闭文件。 – HAL 2014-10-28 08:57:54

回答

8

使用以下filename[]form

char filename[15] ; 
int i; 
for(i =0; i<60; ++i) 
{ 
    sprintf(filename, "program%02d.txt",i); 
    //printf("%s\n", filename); 
    /* 
    fp[i] = fopen(filename ,"w"); 
    .... 
    fclose(fp[i]); 

    */ 
} 
2

看来问题是如何生成的索引文件名。您可以使用sprintf每个i

char file_name[20]; 
sprintf(file_name, "program%d.txt", i); 
3

的snprintf可以用来形成一个文件名。

int main() 
{ 
    int i =0; 
    char str [1024]; 

    for(i=0;i<60;i++){ 
     snprintf (str, sizeof (str), "/home/test/file_%d.txt", i); 
     printf ("%s\n", str); 
     if (NULL == fopen(str,"w")) 
     return 1; 
    } 

} 
+0

+1不使用60个文件指针:) – ha9u63ar 2014-10-28 09:05:35

+1

您需要使用fclose()或者泄露资源。 – Lundin 2014-10-28 09:16:46

+1

OP是使用当前目录,所以上述工作正常,除了文件被放置在错误的目录。 – user3629249 2014-10-28 15:27:30