C语言把内存的文件保存到硬盘时如何把文件名由用户通过屏幕自己设置,并且保存到指定的路径



一般情况下要想把文件保存到硬盘的指定位置,常常用fopen(C:\\Users\\han\\Desktop\\filename.txt,w);其中han为电脑的用户名,而filename为你要写入的文件的名字。但在现实生活中,文件名往往由用户自己设置,这需要scanf(%s,filename);来设置文件名,而将用户设置的文件名成为要保存的文件的名字的话需要fopen(filename,w);如何将生成的文件保存到指定的位置,并且文件名字可以由用户自己设置呢??

首先我们可以定义一个字符数组char path[100]={C:\\Users\\han\\Desktop\\filename};并对其进行初始化,然后利用函数strcatpathfilename;用户设置的文件名字接在path的后面未使用的空间里,然后fopen(path,w);大功告成,这样便可以实现我们把生成的文件保存在制定的路径下,并且由用户设置文件名字。

当然我们也可是实现保存的路径由用户来设置,只需scanf(%s,path); 即可,下面的代码就不实现这个功能了。

代码如下:

int main()
{

 int i=0;
 char ch,filename[20];
 char path[100] = {"C:\\Users\\han\\Desktop\\"};
 
 FILE *fp;


 printf("请输入文件的名字:(用字母或英文)\n");
 scanf("%s",filename);

 strcat(path,filename);

 printf("%s\n",path);
 fp=fopen(path,"w");

 if(fp==NULL)
 {
  printf("读取文件失败!\n");
  exit(0);
 }

 ch=getchar();//用来接收最后的一个回车

 printf("请输入要保存到磁盘的内容:(以#结束)\n");
 ch=getchar();
 while(ch!='#')
 {

  fputc(ch,fp);
  putchar(ch);//将输出的字符显示在屏幕上
        ch=getchar();//重新接收从键盘输入的字符
  i++;
 }

 fclose(fp);//关闭文件
 printf("\n");

printf("文件保存成功!!!\n");

return 0;

}


  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值