运行以下代码并输入A后,这是我的输出:
char 0 is character A with ascii code 65
char 1 is character
with ascii code 10
我对此输出有两个问题:
为什么输出
char 0 is character A with ascii code 65
而不是
char 65 is character A with ascii code 0
程序如何知道第一个“%3d”与迭代次数相关(我认为),第二个“%d”与Ascii值相关联? “%c”是一个字符数据类型,所以它打印A,但没有什么可以区分“%d”除了可能是第一个“%3d”前面的3(但不是那个意思是包括小数点的位置?
在哪里
char 1 is character
with ascii code 10
来自哪里?它是否与代码中的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);
}
答案 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键时输入换行符。