C - format指定类型int但参数的类型为long

时间:2015-04-06 12:24:45

标签: c types arguments long-integer

我找不到如何修复这个练习:它是关于学习字符计数(我使用的是Kernighan-Ritchie版本)。我的问题栏说:

  

"警告:格式指定类型' int'但是这个论点有“长”字样。   [-Wformat] printf("%1d \ n",nc); ~~~ ^〜%1ld"

这是代码:

    #include <stdio.h>

int main()
{
    long nc;

    nc = 0;
    while (getchar() != EOF)
        ++nc;
    printf("%1d\n", nc);
}

我在Mac上使用Qt Creator 3.1.1。 Xcode版本6.2(6C131e)上的相同问题。

有任何帮助吗?提前谢谢。

1 个答案:

答案 0 :(得分:8)

long的正确格式说明符是%ld,而不是%d%d需要int

替换

printf("%1d\n", nc);

printf("%1ld\n", nc);

解决问题。