所以我环顾四周,一般都没有找到关于%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);
}
}
答案 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