qfgl.net
当前位置:首页>>关于C语言中while((ch=getchar())!="\n")的作用是什么?怎么...的资料>>

C语言中while((ch=getchar())!="\n")的作用是什么?怎么...

首先这句话是不对的,应该是while((ch=getchar())!='\n') ch=getchar()的意思是获得一个字符给ch,如果获得的字符不是'\n'(回车符),就执行循环,否则退出循环.

while (getchar()!='\n') ; 表示循环读入字符,直到读到回车符结束循环.我们在输入一个数据时,一般都会按回车来确认输入结束,可是scanf()函数对最后的回车确认符并不丢弃,而是存储在缓存中,这样如果,下一个操作是读字符操作,

目的是不断读取用户输入的字符,当读取到的字符为回车符的时候停止循环.

代码有问题,应该是while ((ch = getchar()) != '\n')!和i可别搞混啊,差别太大了目的是不断读取用户输入的字符,当读取到的字符为回车符的时候停止循环.

getchar()函数在while循环中不断读取缓冲区的字符然后与换行符比较,不等的自热就舍弃了所以作用相当于flush缓冲区了

循环语句 当用户输入的字符c不是'\n'时候 结束循环 . getchar(ch)是指给ch输入一个字符

\n是换行的意思,这句话的意思就是一直执行while后的内容,直到getchar函数值为“换行”时终止.

这句话的意思是:从键盘获取一个字符,就是叫你从键盘输入一个字符,只要你输入的不是Enter键就执行循环体,由于你没有声明当键入的是Enter键时执行什么操作,所以在运行时若直接输入Enter,可能(注意我说的是可能)会导致程序崩溃.

因为赋值符的优先级最低,所以前面那个c获取的是输入的字符,后面那个得到的是getchar()!='\n'表达式判断结果.

while(getchar()!='\n');的意思是在这里必须输入一个回车,否则程序不会向下执行.纠其原因,可能是前面输入时遗留在缓冲区里的'\n'会对代码的正确执行造成影响只是猜,因为代码并不完整,说不具体.

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.qfgl.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com