请问,c语言中while屏蔽空格的原理是什么?

img
就是第二重while里面的条件不成立的话,不是会被getchar吞掉一个数字字符吗?

不是做了判断吗,判断ch!=' '
不是会被getchar吞掉一个数字字符吗?
getchar确实读取了,同时把读取的内容赋值给了ch变量。

ch已经接收输入值了啊,所以不会被吞掉的,如果直接getchar() == “”判断,则会被吞掉

getchar是吞掉一个数字字符,但是之后又用ungetc补充回去了。

哦,是因为下面有一个ungetc

while ((ch = getchar()) == ' '); 这句意思就是如果getchar()读入的是空格,什么也不干,继续等待读入下一个,再判断是否是空格,直到不是空格退出while()循环。