C语言:scanf()语句错误读取(四)

2014-07-19 22:52:39 · 作者: · 浏览: 183

 

  输入:1 2 3 4 q 5 6 7 8 9

  输出:1 2 3 4 4 4 4 4 4 4

  或

  输入:1 2 3 4 q

  输出:1 2 3 4 4 4 4 4 4 4

  要解决这个问题需要在循环中添加一个清空缓存的语句

  fflush(stdin);

  但这样scanf()每次只能读取一个数,因此需要用enter来间隔。

  输入:1 2 3 4 q 5 6 7 8 9

  输出:1 2 3 4 5 6 7 8 9

  (因为再输入q时,scanf()未读取q,但i仍加1,因此只输入9个数就完成程序)