1099062139 发表于 2015-1-28 22:32:15

新人刚学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++;
   
}


}

1099062139 发表于 2015-1-28 22:35:00

:big:big:big:big:big:big

故乡的风 发表于 2015-1-28 23:06:20

可以使用sprintf来构造文件名

1099062139 发表于 2015-1-28 23:15:53

故乡的风 发表于 2015-1-28 23:06
可以使用sprintf来构造文件名

求详解:handshake

1099062139 发表于 2015-1-28 23:33:34

故乡的风 发表于 2015-1-28 23:06
可以使用sprintf来构造文件名

那个函数查了一下,知道怎么用,还是和我的想法不知道怎么搭配,有时间吗,帮我修改一下,代码可以复制上面:lol:万分感谢

lark 发表于 2015-1-29 07:42:07

#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);

1099062139 发表于 2015-1-29 11:53:38

lark 发表于 2015-1-29 07:42
这个很差的,很多函数 比如字符替换函数,我都没找到,看来我也要好好学习了。代码你自己看吧,我懒的 ...

大谢,已经看懂,有个小问题,打开文件成功后你没有关闭吧:lol:

lark 发表于 2015-1-30 05:10:22

1099062139 发表于 2015-1-29 11:53
大谢,已经看懂,有个小问题,打开文件成功后你没有关闭吧

是哦我粗心了,而且死循环似乎是要while(i++)的,不是1,粗心了:lol:

百日维新 发表于 2015-1-30 15:30:46

大牛啊
页: [1]
查看完整版本: 新人刚学C,一个小病毒,这么执行不了呢