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

来源:互联网 发布:制作h5的软件 编辑:程序博客网 时间:2024/05/17 17:44


一般情况下要想把文件保存到硬盘的指定位置,常常用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;}


  

原创粉丝点击