getchar与getch 都不读取回车键(华为编程机试中遇到的问题)
时至今日,我才知道自己的知识盲点是对计算机的内存层次--缓存没有概念(没有学过计算机系统或者当时看了其实没有理解应用) ,另一个就是对windows操作系统中的标准输入是行缓存这一知识也不了解。
我们可以在window操作系统上的任务管理器的性能页面看到三级缓存的显示,L1缓存容量最小,但读取速度最快,价格也最贵(缓存的知识可学习深入理解计算机系统)
为什么要有缓存呢?应用在键盘输入的话,是因为cpu的处理速度非常快,而键盘输入速度慢,另外可能一直不输入,导致cpu一直空转,极度浪费资源,所以设置了键盘缓存,等到换行符输入的时候,再通知cpu来缓冲区进行读取字符,示例图