代码之家  ›  专栏  ›  技术社区  ›  Ahmed

格式说明符C++的问题是什么

  •  2
  • Ahmed  · 技术社区  · 6 年前

    #include <cstdio>
    
    int main()
    {
        float b = 323.23f;
        std::scanf("%6.3f\n", &b);  // <-- Warning
        std::printf("%6.3f\n", b);
    }
    

    有一个警告 scanf()

    转换说明符无效 '.'

    有什么我不知道的吗?

    3 回复  |  直到 6 年前
        1
  •  8
  •   rob mayoff    6 年前

    当你使用 %6.3f 具有 printf ,的 .3

    scanf 不需要您指定精度,因为它将接受在输入流中找到的任何精度。所以你不能指定 .3 (或 . -任何其他)在 扫描 %6f 甚至 %f

        2
  •  1
  •   Harshith Rai    6 年前

    scanf %f 内部 扫描 虽然是 %6f 同样有效。

    但事实并非如此 printf [some_number].[number_of_places]f ,比如说, 6.3f 在一个 打印F ,而 .3f 会影响显示的小数点后的位数 6

    希望这能有所帮助。

        3
  •  1
  •   AsH    6 年前