简单的 printf 程序不起作用

Simple printf program doesn't work

这个程序不工作,我不知道为什么。

#include <stdio.h>

int main()
{
    printf("%а", 20.0);
}

我正在用 C99 编译。预期输出为 0x1.4p+4

аCYRILLIC SMALL LETTER A (U+0430),但你必须使用LATIN SMALL LETTER A (U+0061)a

如果您使用的编译器能够检查格式字符串,例如 Clang 或 GCC,则使用(至少)-Wall 进行编译,其中包括 -Wformat (GCC Warning documentation)

5 : warning: unknown conversion type character 0xffffffd0 in format [-Wformat]
5 : warning: too many arguments for format [-Wformat-extra-args]

它真的有线。当我复制粘贴你的代码时,它变成 printf("%?", 20.0);

你应该检查你的字符编码。