新手学习C语言文件,问题已经在程序中备注,求解答!

//怎样向文件读写字符
#include
#include
int main()
{
FILE * fp;
char ch,filename[10];
printf("请输入所用的文件名:");
scanf("%s",filename);
if((fp = fopen(filename,"w")) == NULL)//为什么这里的filename没有双引号引起来;
{
printf("无法打开此文件\n");
exit(0);//终止程序
}
ch = getchar();//这个语句不理解
printf("请输入一个准备存储到磁盘的字符串(以#结束):");
ch = getchar();
while(ch != '#')
{
fputc(ch,fp);
putchar (ch);
ch = getchar();
}
fclose(fp);
putchar (10);
return 0;
}

好像在别的帖子回答过这个问题:

 int main()
{
FILE * fp;
char ch,filename[10];
printf("请输入所用的文件名:");
scanf("%s",filename);
if((fp = fopen(filename,"w")) == NULL)//filename是数组名,代表了字符数组的起始地址,fopen第一个参数需要字符串的地址。
{
printf("无法打开此文件\n");
exit(0);//终止程序
}
ch = getchar();//读入scanf留在缓冲区的回车
printf("请输入一个准备存储到磁盘的字符串(以#结束):");
ch = getchar();
while(ch != '#')
{
fputc(ch,fp);
putchar (ch);
ch = getchar();
}
fclose(fp);
putchar (10);
return 0;
}

因为filename是数组名,所以不能用双引号。ch=getchar();意思是从键盘输入一个字符,赋值给字符变量ch.