文件名的问题

时间:2021-02-19 21:04:33
想写一个程序,只要运行了,就往硬盘里写东西,知道写满为止:

写的很垃圾,勿笑!

在问号那里如何写才能实现文件被命名为i的值?


#define N 65535
#include <stdio.h>
main()
{
 FILE *fp;
 char str[N];
 int i=0;
 str[N]=getchar();
 for (i;;i++)
      {if ((fp=fopen("?","a+"))==NULL)         就是左边那个问号
           {printf("Can not open the file\n");
            exit(0);
           }
       else fprintf (fp,"%s",str[N]);
       } 
 fclose(fp);
 getch();
}

7 个解决方案

#1


itoa()函数;
调用方式:char *itoa(int num, char *str, int radix)
说明:itoa()函数的原型在stdlib.h中。
函数itoa()把整型数num转换成与其等价的字符串,且把其结果放在由str所指向的字符串中。字符串输出的进制是由radix确定的,它可以在2到36的范围内变化。
该函数返回由str所指向的指针,一般没有错误返回值。调用itoa()时,一定要用足够的长度字符串来保存转换后的结果。所需要的最大长度是17字节。
例子:
/*itoa.c*/
#include <stdlib.h>
#include <stdio.h>

void main()
{
   char p[20];
   int value = 1423;

   clrscr();
   
   itoa(value,p,16);
   printf("The hexadecimal of 1423 is %s\n",p);

   itoa(value,p,8);
   printf("The octadecimal of 1423 is %s\n",p);

   itoa(value,p,2);
   printf("The binary of 1423 is %s\n",p);
  
   getch();
}
看到上面这个东东,你就知道了吧
想办法,把i转换成字符串
放到你的问号那里就行了

#2


我现在是大三学生,信息管理与信息系统专业
我QQ是:124794760
欢迎CSDN上的朋友加我
共同进步吧!

#3


楼主的程序很多错。

#4


/*或者使用sprintf()函数,将i写到字符数组中去*/
#include"stdio.h"
#include"conio.h"
#define MAX 200
#define N 65535
#include <stdio.h>
main()
{
 FILE *fp;
 char str[20],str1[10];/*数组长度过大*/
 int i;
 /*str[N]=getchar();这句有问题,不知你是不是想输入一个字符串放到str数组中?*/
 gets(str);
 for (i=0;;i++)
 {
  sprintf(str1,"%d",i);
  if ((fp=fopen(str1,"w"))==NULL)      
        {
         printf("Can not open the file\n");
         exit(0);
         }
        fprintf(fp,"%s",str);
        fclose(fp);
  }
}

#5


ftoi()

#6


或者用宏
#define FILENAME(X) ""#X

... ...
fp=fopen(FILENAME(i),"w")

#7


对不起,我好像说错了,嘻嘻,还是像zhangfjj(小张) 说的那样做吧。

#1


itoa()函数;
调用方式:char *itoa(int num, char *str, int radix)
说明:itoa()函数的原型在stdlib.h中。
函数itoa()把整型数num转换成与其等价的字符串,且把其结果放在由str所指向的字符串中。字符串输出的进制是由radix确定的,它可以在2到36的范围内变化。
该函数返回由str所指向的指针,一般没有错误返回值。调用itoa()时,一定要用足够的长度字符串来保存转换后的结果。所需要的最大长度是17字节。
例子:
/*itoa.c*/
#include <stdlib.h>
#include <stdio.h>

void main()
{
   char p[20];
   int value = 1423;

   clrscr();
   
   itoa(value,p,16);
   printf("The hexadecimal of 1423 is %s\n",p);

   itoa(value,p,8);
   printf("The octadecimal of 1423 is %s\n",p);

   itoa(value,p,2);
   printf("The binary of 1423 is %s\n",p);
  
   getch();
}
看到上面这个东东,你就知道了吧
想办法,把i转换成字符串
放到你的问号那里就行了

#2


我现在是大三学生,信息管理与信息系统专业
我QQ是:124794760
欢迎CSDN上的朋友加我
共同进步吧!

#3


楼主的程序很多错。

#4


/*或者使用sprintf()函数,将i写到字符数组中去*/
#include"stdio.h"
#include"conio.h"
#define MAX 200
#define N 65535
#include <stdio.h>
main()
{
 FILE *fp;
 char str[20],str1[10];/*数组长度过大*/
 int i;
 /*str[N]=getchar();这句有问题,不知你是不是想输入一个字符串放到str数组中?*/
 gets(str);
 for (i=0;;i++)
 {
  sprintf(str1,"%d",i);
  if ((fp=fopen(str1,"w"))==NULL)      
        {
         printf("Can not open the file\n");
         exit(0);
         }
        fprintf(fp,"%s",str);
        fclose(fp);
  }
}

#5


ftoi()

#6


或者用宏
#define FILENAME(X) ""#X

... ...
fp=fopen(FILENAME(i),"w")

#7


对不起,我好像说错了,嘻嘻,还是像zhangfjj(小张) 说的那样做吧。