scanf读取输入时读入空格/回车的情况及处理方法

 

 

 这是我遇到的情况,圈起来的地方读入时,会把前面箭头处读n时的回车读入,导致读取不正确,一般情况下,这种问题会出现在%d与%c搭配的情况下。

原因:

  使用scanf从输入流缓冲区中读取数据,系统会把从键盘输入的字符先放入缓冲队列,直到键入回车键或者遇到文件结束符EOF时,再从输入缓冲区逐个读取字符;
解决:

  1,用%*c读入多余的回车符

  2,在%c前面加上一个空格

 

posted @ 2020-03-19 22:14  JC97  阅读(2848)  评论(0编辑  收藏  举报