scanf,那些被忽略的

先上一段代码:

 

按照一般正常输入是没问题,可是如果首先输入了类似'x'的字符,那么代码会永远循环提示“try again”。

 

原理:在scanf转换数字的时候,它遇到的任何非数字字符都会终止转换并被保留在输入流中,(注意输入流概念),因此,除非采用了其他的步骤,那么未预料的非数字输入会不断“阻塞”scanf,导致scanf无法越过改错误字符去处理后边合法的数字字符。

 

 

posted @ 2011-06-01 20:05  奋斗中的毛毛虫  Views(149)  Comments(0Edit  收藏  举报