关于循环输入字符或字符串
说明
首先,需要说明的是,循环输入字符(串)时,空白符抢占字符(串)位置的问题 到底是个什么问题,官方一点,专业一点来说,这叫作什么。 这是关于清除缓冲区的问题。
什么是缓冲区呢?
缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。
缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。
使用缓冲区有什么好处呢?
1、减少实际物理读写次数
2、缓冲区在创建时就被分配内存,这块内存区域一直被重用,可以减少动态分配和回收内存的次数
为什么要清除缓存区呢?
既然上面说了缓冲区是有益的,那为什么还要清除呢?
因为在循环输入时
你从键盘输入的所有字符被存到一个缓冲区,在你调用getchar,getch,getche,scanf等函数时,电脑从这个缓冲区取,而不一定正好是你在这个时候键盘输入的.(如果你上次从键盘的输入和程序中要求的内容不一致时).
清空之后,就是直接从你这个时候从键盘上输入的字符中读取了.
在输入字符或字符串时,当你想要输入下一个,势必会需要从键盘输入空白符(