scanf函数在c语言中的疑问

scanf_s(“%2.3f”,&a)

中的.3是什么意思?
这个程序运行的时候不管在控制台里输入什么都会异常

  • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:C语言中的scanf与scanf_s 以及循环使用scanf_s进行输入时的问题解决
  • 你还可以看下c语言参考手册中的 c语言-scanf()
  • 除此之外, 这篇博客: C语言中scanf函数详解中的 4.scanf与printf的不同 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    1. printf的后续参数不要加&,而scanf由于需要一个指针,所以需要加&。

    2. printf的参数由于比int小的变量会升级为int,这样数据仍然是完整的。仅比int大的需要额外指明长度指示符。

    3. scanf会将数据填充到对应的变量里去,必须指明被填充的对象是什么,用int来填充char很显然是错误的,所以必须明确指定长度指示符。例如%hhd用于char,%hd用于short。

scanf里不要加2.3这个格式符

scanf好像不能控制精度,去掉.3