C语言的提问

我要在D盘生成文件名为00.TXT~99.TXT的文本文件 用for循环来产生文件名 不能连续写100次fopen 应该怎么写?
请写出一个能运行的程序 然后加上解释再发上来 谢谢了

使用的库函数:
sprintf
fopen
fclose
思路:
用sprintf生成文件名,然后用fopen的w模式创建文件,最后用fclose关闭文件。

完整的代码和注释如下:
#include <stdio.h>

void main()
{
int i=0;
char filename[10];
FILE* fp;
for(i=0;i<100;i++)
{
if (i<10) sprintf(filename,"D:\\0%d.TXT",i); /*必须是\\,否则出错 */
else sprintf(filename,"D:\\%d.TXT",i);
fp = fopen(filename,"w");
fclose(fp);
}
}

一些说明:
1、文件路径,例如d:\00.TXT,其字符串长度为9,但定义字符数组时必须至少为10,因为串末位自动加'\0'表示终止,否则fopen会出错。
2、sprintf(filename,"D:\\0%d.TXT",i) sprintf函数用来生成格式化字符串,filename是存放的字符数组,"D:\\0%d.TXT"为格式化字符串,中间\\是表示单个\,因为\是控制字符,必须用\\来进行转义。
3、fp = fopen(filename,"w"); fopen的第一个参数是文件路径,第二个参数是打开文件方式,"w"表示写方式打开,如果文件不存在,则自动创建。
fclose(fp);关闭文件,打开后不用的话及时关闭是好习惯。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-02-11
用sprintf大概就可以,自行试试
相似回答