mein Programm ist recht einfach:Printf von langen Doppel unbekannten Umwandlungstyp Zeichen L
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
long double a = 4.5;
printf("%Lg", a);
return 0;
}
Wenn kompiliert, gibt es eine Warnung:
warning: unknown conversion type character 'L' in format [-Wformat=]|
Die Ausgabe in der Konsole ist
-1.28823e-231
Die Dokumentation ist ziemlich klar über das Drucken von langen Doppel, es gibt einfach an, dass der richtige Parameter für dieses Format ist L. Was mache ich falsch? Ich verwende Codeblocks, mingw32-g ++ - Compiler unter Windows 10.
P.S .: cout produziert die gleiche Ausgabe.
Keine Probleme mit gcc 6.2.1. Vielleicht unterstützt dieser Compiler keine 'long double' Konvertierung für' printf'. Sie können dieses Problem wahrscheinlich vermeiden, indem Sie tatsächlich C++ - Code anstelle von C-Code schreiben und den Operator '<<' verwenden. –
Ihr Code kompiliert gut. Ich habe es kompiliert und die Ausgabe war korrekt. Versuchen Sie es mit anderen Compiler – Yousaf