新人刚学C,一个小病毒,这么执行不了呢
原因我知道了,应该是每次的文件名是一样的,所以没有生成第二个,该怎么解决
#include<stdio.h>
#include<stdlib.h>
#define name "c:\\新建文件夹\\i.txt"
main()
{ FILE *fp;
while(i<100)
{ inti=1;
fp=fopen(name,"w");
if(fp==NULL)
{
printf("错误。");
exit(0);
}
fclose(fp);
i++;
}
}
:big:big:big:big:big:big 可以使用sprintf来构造文件名 故乡的风 发表于 2015-1-28 23:06
可以使用sprintf来构造文件名
求详解:handshake 故乡的风 发表于 2015-1-28 23:06
可以使用sprintf来构造文件名
那个函数查了一下,知道怎么用,还是和我的想法不知道怎么搭配,有时间吗,帮我修改一下,代码可以复制上面:lol:万分感谢 #include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void){
FILE *fp;//用于New文件
char add="F:\\V\\file.txt"; //存储new文件的数据
char ch="0";//该数组用于存放 将数字转换成的字符串;
int num=0;//对整形变量num进行初始化,用于存放数字;
char hand[]=".txt";//没办法,我必须每次用它来保持需要新建文件时的数据的结尾
char idr[]="F:\\V\\file"; //每次赋值给add,覆盖add的数据;
int i=1;
while(i++<10){ //你把这里改成while(1) 然后死循环了
if((fp=fopen(add,"w"))==NULL){
printf("Cant't new file! /n'");
fclose(fp);
exit(0);
}//打开文件失败的处理方法;
else
printf("打开文件成功!\n");
strcpy(add,idr);//将idr的数值拷贝到add中;
num=i; //将i赋值给num;
itoa(num,ch,10);//将整数转换成字符串
strcat(add,ch); //拼接数组add和数组ch;
//即: F:\\V\\file和 0,防止文件重复,拼接后的文件是F:\\V\file0
strcat(add,hand);//拼接数组add和数组hand;
//即:F:\\V\\file0.txt这下数据完整了
printf("%s",add);
}
}C:\Documents and Settings\Administrator\桌面\007.jpeg
这个很差的,很多函数 比如字符替换函数,我都没找到,看来我也要好好学习了。代码你自己看吧,我懒的解释,熬了好长时间才 做到,也许脑子不太好的缘故,后面很多高级东西还没学,这代码有注释,自己看下,共同讨论下。睡觉sleep(1); lark 发表于 2015-1-29 07:42
这个很差的,很多函数 比如字符替换函数,我都没找到,看来我也要好好学习了。代码你自己看吧,我懒的 ...
大谢,已经看懂,有个小问题,打开文件成功后你没有关闭吧:lol: 1099062139 发表于 2015-1-29 11:53
大谢,已经看懂,有个小问题,打开文件成功后你没有关闭吧
是哦我粗心了,而且死循环似乎是要while(i++)的,不是1,粗心了:lol: 大牛啊
页:
[1]