%c 单个字符
%d 十进制整数(int)
%ld 十进制整数(long)
%f 十进制浮点数(float)
%lf 十进制浮点数(double)
%o 八进制数
%s 字符串(char)
%u 无符号十进制数(DWORD)
%x 十六进制数(0x00000)
例子:
int a=123;
CString temp;
// %d是十进制整数(int)
temp.Format(“输出:%d”,a);
::MessageBox(NULL,temp,"信息",0);
信息框会显示123
C语言并没有定义这些东西,是某些函数定义了这些东西,比如scanf()和printf(),这些东西是“控制字符”,也就是用于“控制输入、输出的方式”的字符。
从输入的角度来说:
当我们从键盘输入数据时,我们按下的键其实都是“字符”,但这些按下的“字符”可以有不同的解读方式,比如我按下'3',它可以被读取、被认为是数字3,也可以被读取、被认为是字符'3',所以我们获取输入的时候就要“指定读取的方式”,而指定的方法就是设定“控制字符”,比如scanf()函数,如果我们令其为scanf("%c",&char变量),那么当我们键盘按下“123.12”时,scanf()就会获取第一个字符'1',然后存进那个char变量中,而如果我们令其为scanf("%f",&float变量),那么同样键盘按下“123.12”时,scanf()就会将它们当作一个整体、一个浮点数123.12,然后存进那个float型变量里。
而从输出的角度来说:
如果我们printf("%c",int变量),而且这个int变量为78,那么屏幕上输出的就不会是78,而是字符'N',只有printf("%d",int变量)时,屏幕上输出的才会是78,而printf()有这种机制的原因,就是char型变量其存储的其实也是“一个数字”,如果不指明输出的方式,那么就不知道该如何解释变量中的数字。当然还有对于字符串,如果不通过%s来指明其是一个字符串,那printf()如何判断该输出一个字符,还是直到'\0'的所有字符呢?
至于题目中所说的%c,%d,%f就分别对应着“将获取、解释的方式设为一个字符”,“将获取、解释的方式设为一个int型变量”,“将获取、解释的方式设为一个float型”
标签:C语言,d%,c%