#include<stdio.h>
void main()
{
FILE *fp;
char ch,filename[100];
scanf("%s",filename);
if((fp = fopen(filename,"w")) == NULL)
{
printf("cannot open file\n");
exit(0);
}
ch = getchar();
while(ch != #)
{
fputc(ch,fp);
putchar(ch);
ch = getchar();
}
fclose(fp);
}
--------------------------------------------------
hello,world.#
hello,world.
--------------------------------------------------
问题:getchar不是输入单个字符么,应该每次只能输入一个字符啊?为什么可以输入字符串?并且可以完整输出?
应该每次只能输入一个字符啊?为什么可以输入字符串?
==>没错,是每次只能输入一个字符,但你可以连续输啊!你连续输入的Hello,World就写到文件里去了,有什么不对吗?
你好像方错地方啦!
:
因为getchar()函数术读缓冲区,针对你的代码,读的是控制台键盘缓冲区,它会连续读,直到碰到结束符EOF,\0为止,所以你敲回车后,会输出完整的hello world,最后得到的不是h,应该是你最后输入的一个字符#.
while(ch != #)
{
fputc(ch,fp);
putchar(ch);
ch = getchar();
}
你最后输入的一个字符#,没有什么问题啊。这段程序不是表达的这个意思?