什么是重复输出,它如何区分迭代次数和Ascii代码?

时间:2018-02-10 00:40:18

标签: c++

运行以下代码并输入A后,这是我的输出:

char   0 is character A with ascii code 65
char   1 is character 
 with ascii code 10

我对此输出有两个问题:

  1. 为什么输出

    char 0 is character A with ascii code 65
    

    而不是

    char 65 is character A with ascii code 0
    
  2. 程序如何知道第一个“%3d”与迭代次数相关(我认为),第二个“%d”与Ascii值相关联? “%c”是一个字符数据类型,所以它打印A,但没有什么可以区分“%d”除了可能是第一个“%3d”前面的3(但不是那个意思是包括小数点的位置?

    1. 在哪里
      char 1 is character 
       with ascii code 10
      
    2. 来自哪里?它是否与代码中的c,c部分有关?

      #include <stdio.h>
      main ()
      {
          int c,n=0;
          while ((c=getchar()) !='Q' )
          printf ("char %3d is character %c with ascii code %d\n", n++, c,c);
      }
      

1 个答案:

答案 0 :(得分:0)

格式说明符的顺序与printf的参数顺序相同,因此&#34;%3d&#34;对应于printf的第二个参数,%c对应于第三个参数,&#34;%d&#34;对应第四个。通常,printf的第n + 1个参数对应于第n个格式说明符。

在通话printf("cahr %3d is character %c with ascii code %d\n", n++, c, c)中,&#34;%3d&#34;对应于参数n++,&#34;%c&#34;对应c和&#34;%d&#34;对应于第二个c

的原因
char 1 is character 
 with ascii code 10

行是您按Enter键时输入换行符。