%n如何使用变量

时间:2015-04-04 17:54:35

标签: c printf

所以我环顾四周,一般都没有找到关于%n的信息,也没有关于如何将它与变量一起使用的信息。

据我所知,我使用的代码应该可以工作,但我不知道它不是什么。我遇到麻烦的特定行是:

printf("%d %n", num[x], &c);

以下是整个代码。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
        //seed rand, declare arrays, declare variables
        srand(time(NULL));
        int num[10];
        int c = 0;
        int total = 0;
        int x;

    printf( "%s%14s%20s\n", "Value", "Characters", "Total Characters" );

    //Loads the num array with random numbers.
    for(x = 1; x  < 10; x++)
    {
            num[x] = 1 + rand() % 1000;
    }

    for (x = 1; x < 10; x++)
    {
            printf("%d %n", num[x], &c);
            printf("%14d", c);
            total = total + c;
            printf("%20d\n", total);
    }
}

1 个答案:

答案 0 :(得分:2)

来自C标准

  

n参数应该是指向有符号整数的指针   写入到目前为止写入输出流的字符数   通过这个调用fprintf。没有参数被转换,但一个是   消耗。如果转换规范包括任何标志,则为字段   宽度或精度,行为未定义。

同样适用于printf

这是一个示范程序

#include <stdio.h>

int main(void) 
{
    int n1, n2;

    printf( "%s%n%s%n\n", "Hello", &n1, " World", &n2 );

    printf( "%d\t%d\n", n1, n2 );

    return 0;
}

程序输出

Hello World
5   11