接收回车符的问题
#include <stdio.h>
main()
{
FILE *fp;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{printf("Can't open file\n");
exit(0);
}
ch=getchar(); /* 书上说这句子是用来接收scanf最后输入的回车符,我就想到别的了,如下面的小代码。*/
ch=getchar();
while(ch!='#')
{fputc(ch,fp);putchar(ch);
ch=getchar();
}
fclose(fp);
getch();
}
***********************
#include <stdio.h>
main()
{
printf("\n");
char c1[10],c2[10];
scanf("%s",c1);
scanf("%s",c2);
printf("%s,%s",c1,c2);
getch();
}
那么我可不可以认为,第一个scanf最后的回车又被第二个scanf接收转化为结束符了???
如此第二个数组c2第一个元素不就是‘\0’吗,又说数组‘\0’后面的元素没意义的,
那为什么又有输入scanf("%s",c2)???
晕啊,哪位帮讲讲哦,先谢谢了