1.%的使用,从左向右结合
printf("%");//其输出为空
printf("%%"); // 打印输出一个%
printf("%%d",11);//输出为结果%d,这里%%会在一起输出%再输出字符d

printf("%");//其输出为空
printf("%%"); // 打印输出一个%
printf("%%d",11);//输出为结果%d,这里%%会在一起输出%再输出字符d
printf("%%%d", 11);//输出%11
#include<stdio.h>
int main()
{
printf("%");//其输出为空
printf("\n");
printf("%%"); // 打印输出一个%
printf("\n");
printf("%%d",11);//输出为结果%d
printf("\n");
printf("%%%d", 11);//输出%11
printf("\n");
system("pause");
return 0;
}
2.输出项和控制项不匹配的情况
printf("%d,%d", 1, 2, 3, 4, 5, 6); //输出表多了会被忽略
printf("%d,%d,%d,%d,%d", 1, 2); //控制项多了,会打印出不定值
#include<stdio.h>
int main()
{
printf("%d,%d", 1, 2, 3, 4, 5, 6); //输出表多了会被忽略
printf("\n");
printf("%d,%d,%d,%d,%d", 1, 2); //控制项多了,会打印出不定值
printf("\n");
system("pause");
return 0;
}
3.%o,%d,%u不可以大写,但是%x可以大写,%X大写,代表十六进制字符是大写的
//%d,%u,%o 如果大写%D ->D %U->U %O->O
#include<stdio.h>
int main()
{
printf("%d\n", 9);
printf("%D\n", 9);
printf("%o\n", 010);
printf("%O\n", 010);
printf("%u\n", 011);
printf("%U\n", 011);//%o,%d,%u不可以大写
system("pause");
return 0;
}
4.%E,%X,%E指数会大写,%X十六进制的字母会大写。
%g和%G根据数值不同自动选择%f或%e.%G G大写的时候如果按照%f正常是输出,如果按照%e,指数为大写
#include<stdio.h>
int main()
{
printf("%x \n", 0x1A);//%x表示输出字母是小写 则输出结果为1a
printf("%X \n", 0x1A);//%X表示字母输出是大写 则输出结果为1A
printf("%e\n",1223414.3);// 指数为e
printf("%E\n",1223414.3);//指数为E
printf("%G\n",1.2);//按%f 方式输出
printf("%G\n",12141414.12);//按%e方式指数形式为E
system("pause");
return 0;
}
5.%s中的S不能大写,写了以后什么都不输出,%F 也不能大写,其不输出%F-->空而不是F
%和%C都一样
#include<stdio.h>
int main()
{
printf("%C \n",65);
printf("%c\n",65);//%c和%C都一样
printf("%s\n","hello");
printf("%Sqq\n","hello");//%s中的S不能大写,写了以后什么都不输出
printf("%f\n",112.1);
printf("%Fqq\n",112.1);//%F 也不能大写,其不输出%F-->空而不是F
system("pause");
return 0;
}
6. //printf打印的时候,类型与数据要匹配,不匹配就会出现转换错误
#include<stdio.h>
int main()
{
//printf打印的时候,类型与数据要匹配,不匹配就会出现转换错误
printf("%d\n", 100000.0);
printf("%f", 100000);
system("pause");
return 0;
}