getchar 是一个字符一个字符读取的,造成截图里的问题的原因是,scanf函数,它需要一个整形数字,但是你输入了一个 c,这个字符不会被接受,也不会被清除,会保存在scanf的缓存区里面,然后就执行到了display。你输入正确的类型,应该就会正常
你知道getchar是一个一个读取字符,那你这个while是想做什么。
我来解释一下你的程序:
输入第一个c,进入while循环,运行scanf,这时第二个c输入了,所以rows是整型读取失败,所以和cols都是随机的一个值了。然后进入display函数,输出很多c。跳出函数。这时你没有继续输入,所以程序暂停等待输入