|
发表于 2015-5-15 21:59:48
|
显示全部楼层
回帖奖励 +10 鱼币
当你输入 y 然后按回车 这时候: getchar()得到一个字符 y 然后循环各种 然后 还有一个字符就是回车 即使 \n 也就是说你输入一个 字母按回车 输入缓冲区有两个字符 一个是字母一个是回车(回车也是一个字符 是 \n) getchar()会调用两次 ,第一次返回你输入的字母,第二次返回一个回车字符 (\n)
你在中间加个while(getchar()!='\n') 意思是 while这个循环的条件是 调用getchar()函数返回的字符不是回车(\n) 就开始循环 因为在前一个while循环已经调用 getchar() 这些输出缓冲区的内容 就剩下 \n 这个字符 在 while(getchar()!='\n') 又调用了getchar()这个函数返回 \n 因为 返回的是\n这个字符 while(getchar()!='\n') 这个循环是不会循环的 ....所以这个 while(getchar()!='\n')
{} 起到的作用其实就是调用了getchar()把 \n从输出缓冲区去除, 加个while()是多余了.
你把 while(getchar()!='\n') 这里改成 getchar();一样的
不知道说了这么多,LZ懂了没... |
评分
-
查看全部评分
|