关于getchar的读取问题

img


关于getchar的读取的概念我还是有点模糊,getchar不是一个一个的读取输入的字符吗(我认为的)
然后就是我输入cc 之后这个运行结果我看不懂,希望有人能给解释一下,邱秋!🙏

getchar 是一个字符一个字符读取的,造成截图里的问题的原因是,scanf函数,它需要一个整形数字,但是你输入了一个 c,这个字符不会被接受,也不会被清除,会保存在scanf的缓存区里面,然后就执行到了display。你输入正确的类型,应该就会正常

你知道getchar是一个一个读取字符,那你这个while是想做什么。
我来解释一下你的程序:
输入第一个c,进入while循环,运行scanf,这时第二个c输入了,所以rows是整型读取失败,所以和cols都是随机的一个值了。然后进入display函数,输出很多c。跳出函数。这时你没有继续输入,所以程序暂停等待输入