我刚刚通过查看标准遇到了这个:
7.19.6.1 fprintf函数
在
8转换说明符及其含义为:
关于:
n参数应该是一个指向有符号整数的指针 到目前为止,通过此调用写入输出流的字符数 fprintf中。没有参数被转换,但是消耗了一个参数。如果转换 规范包括任何标志,字段宽度或精度,行为是 未定义。
这是什么意思? %n做什么?
我是否认为是正确的,根据:
返回
14 fprintf函数返回传输的字符数
在此片段中:
int a, b;
b = printf ("Thi%n\s is just a test",&a);
a
等于b
?
答案 0 :(得分:3)
到目前为止写入输出流的字符数
“到目前为止”,意味着只要您放置%n
,结果就会发生变化。举个例子,它将是3。
如果您将%s
位置增加一个字符,则指向的结果变量将增加1。将%s
放在字符串的最后会使其等于printf
答案 1 :(得分:1)
a = 3和b = 19
a将等于%n之前打印的字符数。 假设你试图打印printf("这个%sis%n只是一个测试","编码器",& a); 那么a的值将是这个+编码器+ = 11。
b的值始终是打印的字符总数