相信初学者,都有过这样的经历。就是明明给了输入指令,偏偏跳过。就像下面这样
这是因为scanf函数它扫描数据都是去内存中一块缓冲区中进行扫描并读入数据的,而我们在控制台中输入的数据也都是被先存入缓冲区中等待扫描器的扫描读取。这个扫描器在扫描过程中判断停止的依据就是“空白符”,空格啊,回车啊什么的都算做是空白符。scanf()方法在扫描到空白符的时候会将前面的数据读取走,但会丢下空白符“\r”在缓冲区中,但是,方法在扫描的时候会将扫描到的空白符一同清理掉。关于缓冲区推荐一篇博客https://blog.csdn.net/junbopengpeng/article/details/16810451
这个问题只需要用一个函数getchar()来取走缓冲区当中的空白符即可。
我也是新手,希望对大家有所帮助,不喜勿喷。