回 帖 发 新 帖 刷新版面

主题:谁能帮我解释一下这个程序。

#include <stdio.h>

void main()
{
   int first_count;
   int second_count;

   printf("Jamsa%n's 1001 C & C++ Tips%n\n", &first_count,
     &second_count);

   printf("First count %d Second count %d\n", first_count,
     second_count);
}

first_count,second_count都没有赋值,怎么会有数值呢。
%n是什么意思。
请教高手!

回复列表 (共21个回复)

沙发

#include <stdio.h>

void main()
{
   int first_count;
   int second_count;

   printf("Jamsa%'s 1001 C & C++ Tips%n\n", &first_count,
     &second_count);//这里就是在给first_count,second_count赋值,
   //其值是%n在字符串中所在的位置,%n并不属于字符串,不占位置

   printf("First count %d Second count %d\n", first_count,
     second_count);
}

板凳

还是不太明白,拜托你讲的再详细些,谢谢[font=宋体][/font][em1][em1]

3 楼

判断 PRINTF 已显示的字符数目
当程序作复杂的屏幕格式化时,有时需要知道 printf 已显示的字符数。使用 %n 格式符时,printf 将 printf 显示过的字符编译数目赋给一个变量 ( 通过指针传递 )。
main()
{ int count1,count2;
  printf("C and C++%n programmer%n\n",&count1,&count2);
  printf("count1=%d,count=%d",count1,count2);
}
运行结果:( 注意:%n不作为字符统计个数 )
    C and C++ programmer
    count1=9,count=20

4 楼

受教了啊
上面的

5 楼

不错不错~

#include <stdio.h>

int main()
{
   int first_count;
   int second_count;
   int Three_count;

   printf("12345%%n67%%n890123456%%n\n");

   printf("12345%n67%n890123456%n\n", &first_count,
     &second_count,&Three_count);

   printf("First count %d Second count %d Three_count %d\n", first_count,
     second_count,Three_count);

   getchar();
   return 0;
}

6 楼

学到新知识了,呵呵:)

7 楼

长见识

8 楼

谢谢指教

9 楼

厉害

10 楼

呵呵我第一次知道还有着东西

我来回复

您尚未登录,请登录后再回复。点此登录或注册