如何解决为什么scanf的错误不让它消耗输入缓冲区?
我们知道,如果我们尝试读取一个值,那么其类型不代表格式的参数(例如,值为{em> %d
的z
>,...),scanf
不会在读取错误后清除输入缓冲区(通常会导致无限循环),但会成为库函数(因此不能直接与内核操作)不应该像read
函数那样使用原子系统调用?如果是,为什么使用read
时却不清除输出?
同样,当我们在输入缓冲区中使用scanf
读取内容时,它将始终保留'\n'
(换行)字符。怎么知道可能不消费呢? \
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。