一般情况下要想把文件保存到硬盘的指定位置,常常用fopen(“C:\\Users\\han\\Desktop\\filename.txt”,”w”);其中han为电脑的用户名,而filename为你要写入的文件的名字。但在现实生活中,文件名往往由用户自己设置,这需要scanf(“%s”,filename);来设置文件名,而将用户设置的文件名成为要保存的文件的名字的话需要fopen(filename,”w”);如何将生成的文件保存到指定的位置,并且文件名字可以由用户自己设置呢??
首先我们可以定义一个字符数组char path[100]={“C:\\Users\\han\\Desktop\\filename”};并对其进行初始化,然后利用函数strcat(path,filename);用户设置的文件名字接在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;
}