C++ 重复输出的种类是什么?它如何区分迭代次数和Ascii码?

C++ 重复输出的种类是什么?它如何区分迭代次数和Ascii码?,c++,C++,运行以下代码并输入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与Asci

运行以下代码并输入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,但是除了第一个%3d前面的3之外,没有什么可以区分%d,但这不就是包括小数点在内的位置数吗

在哪里

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);
}

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

在调用printfcahr%3d是字符%c,ascii代码为%d\n,n++,c,c,%3d对应于参数n++,%c对应于c,%d对应于第二个c

原因是什么

char 1 is character 
 with ascii code 10

行是指当您按enter键时输入的换行符。

如果我读对了,您是在问如何工作。或者可能是这样。您是否阅读过printf格式说明符的文档?您是否询问第二和第四个输出?这是因为getchar正在读取您输入的换行符。噢,非常感谢!现在明白了!我还用谷歌搜索了参数和参数。我读到,参数可以看作是分配给临时变量的值,参数是参数的占位符。有道理!哦,好的!我现在明白了它换新线路的原因。我想知道为什么它将“with ascii code 10”放在新行而不是换行符上的“is character”…因为c是循环迭代中的换行符,%c格式说明符被替换为打印字符串中的换行符。哦,好的,我明白了:非常感谢!