//%[-][+][][#][w][.p][h/l/L]格式符(d,o,x,u,i,f,e,g,c,s) //d,i:十进制(带符号数); //u:无符号数 //o:八进制(无符号数,符号位也作为其一部分); //x:十六进制(无符号数,符号位也作为其一部分); //f,e,g:浮点数 //c:字符; s:字符串 printf("0123456789012345678901234567890123456789\n"); printf("01.%5d\n",123); //w:字段宽度说明;十进制数; printf("02.%10f\n",3.141); printf("03.%5d\n",123456); //w:大于位数;不受限制 printf("04.%8s","hello, world\n"); printf("05.%05d\n",123); //0:填充字符;默认空格 printf("06.%-5d\n",123); //-:左对齐标志;默认右对齐 printf("07.%+5d\n",123); //+:带符号数的输出;默认只对负数输出- printf("08.% 05d\n",123); //空格:输出的数为正数时,符号位为空格 printf("09.%.3f\n",3.1415); //.p:对f,e:p为小数位数;超出四舍五入,不足补零;默认p=6 printf("10.%.4e\n",0.031415926); //只有.时,p=0,只输出整数部分 printf("11.%.5g\n",3.00005); //对g:p为有效数字位数;超出四舍五入;不输出无意义的0和小数点;默认p=6 printf("12.%.8s","hello, world\n"); //对s:p为字符的位数;多余截断;默认全部输出;这里'\n'作为s一部分被截断 printf("\n13.%Lf\n",3.141592653); //h;用于 d,i,o,x,u.表示输出是short或unsigned short; //l;用于 d,i,o,x,u.表示输出是long或unsigned long; //L:用于 f,e,g.表示输出是long double; printf("14.%#o\n",123); //#:用于o,x;前面加0(o)或加0x(x);默认不加 printf("15.%#.f\n",3.14); //用于f,e,g:总显示小数点,即使(各种原因)小数部分无数字 printf("16.%g\n",31415926.); //g系统自动选择f,e中宽度最小者 printf("17.%f\n",1234.); printf("18.%.6g\n",123.);
待解决
g的四舍五入有点问题...