C语言中输入函数是怎么把字符码翻译成转换说明指定的其他类型数据的?

如图片,输入23,准确的说,输入的两个字符‘2’和‘3’,那么对于这个输入流,存储在缓冲区的是否应该是ASCII码中二进制码00110010和00110011?scanf()函数在读取这个字节流的时候,又是如何将它翻译的呢?是如何将它翻译成double类型的数值的呢?最终的显示结果为23.00000,scanf()函数是如何实现的呢?第二次,我输入abc,不会实现double类型的值,那对于这个scanf()又是如何判断分析的呢?

主要是由scanf函数的参数 %lf 实现的,表示从键盘输入一个长实数。
如果不是实数,就会转换为 0.000000追问

额,可以帮我详细分析一下吗?

追答

这是scanf函数内部自己处理的。
具体步骤,没有源码,不好分析。
估计是:判断输入的ASCII码是否在字符0~9之间,
如果不是,就输出0.000000吧。

追问

好的,谢谢你!

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网