【发布时间】:2016-12-20 13:24:45
【问题描述】:
我的程序很简单:
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
long double a = 4.5;
printf("%Lg", a);
return 0;
}
编译时有一个警告:
warning: unknown conversion type character 'L' in format [-Wformat=]|
控制台中的输出是
-1.28823e-231
文档对打印长双打非常清楚,它只是说明这种格式的正确参数是 L。我做错了什么?我在 Windows 10 下使用代码块,mingw32-g++ 编译器。
P.S.:cout 产生相同的输出。
【问题讨论】:
-
gcc 6.2.1 没有问题。也许这个编译器不支持
long double转换为printf。您可以通过实际编写 C++ 代码而不是 C 代码并使用<<运算符来避免此问题。 -
您的代码编译良好。我编译它并且输出是正确的。尝试使用不同的编译器
标签: c++ windows gcc gcc-warning