c++ - 用scanf如何读入long double和unsigned char?
ringa_lee
ringa_lee 2017-04-17 11:10:18
0
1
1241

用scanf如何读入long double和unsigned char? 语言学得不精,还请众神指点…… 网上找了一下,可是照着打不行啊。。。 以下是代码和编译信息(c++)

#include <cstdio>
int main()
{
    unsigned char test;
    scanf("%hhu",&test);
    printf("%hhu",test);
    long double a;
    scanf("%Lf",&a);
    printf("%lf",a);
}

1625.cpp:9:20: warning: unknown conversion type character 'h' in format [-Wformat]

1625.cpp:9:20: warning: too many arguments for format [-Wformat-extra-args]

1625.cpp:10:20: warning: unknown conversion type character 'h' in format [-Wformat]

1625.cpp:10:20: warning: too many arguments for format [-Wformat-extra-args]

1625.cpp:12:16: warning: unknown conversion type character 'L' in format [-Wformat]

1625.cpp:12:16: warning: too many arguments for format [-Wformat-extra-args]

1625.cpp:13:16: warning: format '%lf' expects argument of type 'double', but argument 2 has type 'long double' [-Wformat]

ringa_lee
ringa_lee

ringa_lee

全部回覆(1)
洪涛

國外已經有人提過類似的問題了。 點這裏

MINGW 在 long double 方麵被破壞了。我自己也曾報告過這一點 不久前,總結一下正在發生的事情:

在 Windows 世界中 double 和 long double 是相同的。然而在 MINGW 然而,long double 比 double 大(我不知道更多 具體)它隻能打印 MS Windows 的長雙精度,即 雙倍。

他們正在使用 MS 庫或其他東西。 你有兩個選擇。要麼堅持雙倍,這是相同的 Windows 世界,或使用 DJGPP,它是另一個 GCC 端口(但會創建 32 位 DOS 可執行文件)。

或者使用其他編譯器。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板