gpt4 book ai didi

c - printf ("%f",x) ok, printf ("%F",x) 错误格式参数太多

转载 作者:行者123 更新时间:2023-12-03 14:00:08 27 4
gpt4 key购买 nike

当我在 CodeBlocks 中使用说明符 F 时,为什么编译器给我错误“格式参数太多”?

#include <stdio.h>

int main()
{
float x = 3.14159;
printf("%f\n", x);
printf("%F\n", x);
return 0;
}

错误:

error: unknown conversion type character 'F' in format [-Werror=format=]

error: too many arguments for format [-Werror=format-extra-args]

最佳答案

看起来有些版本的 GCC 无法识别 %F , 说来也怪。我的 gcc version 9.2.0 (tdm64-1)对于具有 C11 标准的 Windows,无法识别它,尽管它仅将那些作为警告消息而不是错误发出。

$ gcc main2.c -Wextra -Wall -pedantic -std=c11
main2.c: In function 'main':
main2.c:7:14: warning: unknown conversion type character 'F' in format [-Wformat=]
7 | printf("%F\n", x);
| ^
main2.c:7:12: warning: too many arguments for format [-Wformat-extra-args]
7 | printf("%F\n", x);
| ^~~~~~

执行时不打印该值。

我猜您可能在 Windows 系统中使用了一些 mingW 安装,并且您的编译器必须将警告视为错误,这不是一个坏主意。

@HolyBlackCat suggested , 添加 -D__USE_MINGW_ANSI_STDIO标志解决了这个问题。

This thread有关于如何做的说明。

@RobertS supports Monica Cellio answer有一个链接,其中包含有关如何将其添加到 CodeBlocks 的说明。

或者,为了快速修复代码,您可以使用 %G , 或 %E为科学记数法。

关于c - printf ("%f",x) ok, printf ("%F",x) 错误格式参数太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62243319/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com