12.2 坚持检查返回值scanf()的使用会安全很多

问题:

我发现如果坚持检查返回值以确保用户输入的是我期待的数值, 则 scanf() 的使用会安全很多, 但有的时候好像会陷入无限循环。

在scanf() 转换数字的时候, 它遇到的任何非数字字符都会终止转换并被保留在输入流中。

因此, 除非采用了其它的步骤, 那么未预料到的非数字输入会不断 “阻塞” scanf(): scanf() 永远都不能越过错误的非数字字符而处理后边的合法数字字符。

如果用户在数字格式的scanf 如%d 或%f 中输入字符‘x’, 那么提示后并用同样的scanf() 调用重试的代码会立即遇到同一个’x’。

永不止步步 发表于01-17 14:46 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:308417个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号