#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char ca;
fflush(stdin);
ca = getchar();
while (ca == ' ' || ca == '\t' || ca == '\n') // 只有输入此3个字符才执行循环
{
putchar(ca);
ca = getchar();
}
printf("\n");
system("pause");
return 0;
}
----------------解决方案--------------------------------------------------------
莫非是这样?
[CODE]
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char ca;
fflush(stdin);
ca = getchar();
while (ca == ' ' || ca == '\t' || ca == '\n')
{
putchar(ca);
fflush(stdin);
ca = getchar();
}
printf("\n");
system("pause");
return 0;
}
[/CODE]
----------------解决方案--------------------------------------------------------
不对,问题的根源不对,此程序我也是昨天才发现,原来我一直都是错了,上面的也能运行,但按照现在的ANSIC就是错的
----------------解决方案--------------------------------------------------------
还是我告诉你们把getchar()函数返回char类型就是错的,标准应该是int类型,在这里能正确运行,但到了其他地方就要出问题了,特别是EOF是-1时
----------------解决方案--------------------------------------------------------
退格键无法输入。难道因为这个?
我加的那个fflush(stdin);也是对的,不然也达不到目的
不然每次不管你输入什么,回车之后,缓冲区的\n 又给了ca
----------------解决方案--------------------------------------------------------
还是我告诉你们把getchar()函数返回char类型就是错的,标准应该是int类型,在这里能正确运行,但到了其他地方就要出问题了,特别是EOF是-1时
你错了 ASC Ⅱ 表中的字符 都是常量,可以当int 看待
----------------解决方案--------------------------------------------------------
当然'\N'循环啊
----------------解决方案--------------------------------------------------------
当然'\N'循环啊
狡辩嘛这不,你输入时当然希望系统得到你输入的字符,当你没输入\n 时 它却得到了\n 这就不对
----------------解决方案--------------------------------------------------------
ch = getchar() 这个错误的确隐蔽,在GCC4.0下没有任何警告或错误~但是的确又可以顺利达到目的
----------------解决方案--------------------------------------------------------
那些字符 就是常量,可以当整数用,个人觉得没什么
----------------解决方案--------------------------------------------------------