【问题标题】:Data argument not used by format strings in C [duplicate]C中的格式字符串未使用数据参数[重复]
【发布时间】:2015-11-24 15:09:50
【问题描述】:

所有 printf 语句都出现错误,说明:

格式字符串不使用数据参数。

我在互联网上环顾四周,发现了一些相关的东西,但我没有完全理解解决方案,希望这里的人可以进一步解释。

void displayPuzzle()
{
int i, j;
char x = 'A';

for (i = 0; i < COLOUMNS; i ++)
{
    printf("%c  ", x); //error here
    x++;
}
printf("\n\n");
for (i = 0; i < ROWS; i ++)
{
    printf("%d\t", i); //error here
    for (j = 0; j < COLOUMNS; j ++)
    {
        printf("%c  ", puzzle[i][j]); //error here
    }
    printf("\n\n");
}

}

【问题讨论】:

  • 你应该阅读 printf 的手册
  • 您传递给 printf 的数据参数在格式字符串中没有匹配的转换说明符。如果你不明白这是什么意思,那么“hmmm something-something-format string error on this line where I have printf, I better check the printf两次”应该足以解决问题。

标签: c string printf


【解决方案1】:

printf 的格式字符串说明符使用 % 来表示格式说明符的开始,而不是 &amp;

void displayPuzzle()
{
    int i, j;
    char x = 'A';

    for (i = 0; i < COLOUMNS; i ++)
    {
        printf("%c  ", x);
        x++;
    }
    printf("\n\n");
    for (i = 0; i < ROWS; i ++)
    {
        printf("%d\t", i); 
        for (j = 0; j < COLOUMNS; j ++)
        {
            printf("%c  ", puzzle[i][j]); 
        }
        printf("\n\n");
    }

}

【讨论】:

    猜你喜欢
    • 2013-06-17
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 2016-04-13
    • 2020-12-12
    • 2011-07-22
    相关资源
    最近更新 更多