printf 一些使用细节

来源:互联网 发布:个人收徒网站源码 编辑:程序博客网 时间:2024/05/24 04:58
1.%的使用,从左向右结合
  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);//输出为结果%dprintf("\n");printf("%%%d", 11);//输出%11printf("\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表示输出字母是小写 则输出结果为1aprintf("%X \n", 0x1A);//%X表示字母输出是大写 则输出结果为1Aprintf("%e\n",1223414.3);// 指数为eprintf("%E\n",1223414.3);//指数为Eprintf("%G\n",1.2);//按%f 方式输出printf("%G\n",12141414.12);//按%e方式指数形式为Esystem("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-->空而不是Fsystem("pause");return 0;}

6.    //printf打印的时候,类型与数据要匹配,不匹配就会出现转换错误

#include<stdio.h>int main(){//printf打印的时候,类型与数据要匹配,不匹配就会出现转换错误printf("%d\n", 100000.0);printf("%f", 100000);system("pause");return 0;}



0 0