2010-03-15 45 views
4

請參閱這段代碼:如何在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 
    } 
} 

回答

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

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

注意他是如何放置'%03d'的。嚴格來說,你只需要'%d'來完成你所要求的內容,但是這會將它填充到前3位數字,這樣它們就可以通過你的操作系統正確排序了(好吧... windows實際上很聰明,但仍然,領先的0很酷!) – mpen 2010-03-15 06:11:51

0

這應該工作:

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

使用snprintf()"file%d.txt" and i`生成的文件名。

0

調查snprintf

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

呃...我認爲你忘了編輯一條線,當你複製粘貼;) – mpen 2010-03-15 06:13:58

+0

感謝您的反饋意見,它的好處是快速下降票...也許嘗試重新加載下次回答更快 – YeenFei 2010-03-15 06:17:54

+0

255是一個相當大的緩衝區。至少你的解決方案對於'i'的極大值會很好。 – dreamlax 2010-03-15 06:25:10

相關問題