c语言printf输出格式计算机C资料_计算机-C++资料.pdf
c语言pr i ntf输出格式(总 6页)-CAL-FENGHAL-(YICAI)-Company One 1 CAL 本页仅作为文档封面,使用请直接删除 C语言printf()输出格式大全 1.转换说明符a(駄)浮点数、十六进制数字和p-(P-)记数法(C99)%c字符%d有符号十进制整 数就浮点数(包括float和doulbe)%e(%E)浮点数指数输出e-(E)记数法%g(%G)浮点数不显 无意义的零0%i有符号十进制整数(与相同)%u无符号十进制整数%o八进制整数e.g.0123%x(%X)十六进制整数xml:namespace prefix=stl/0 e.g.0 x1234%p 指针%s 字符 串%2标志左对齐:e.g.*20s”右对齐:J e.g.W+20s空格:若符号为正,则显示空 格,负则显示-e.g.-%”企对c,s,d,u类无影响:对。类,在输出时加前缀。;对x类,在输 出时加前缀Ox:对e,g,f类当结果有小数时才给出小数点。3.格式字符串(格式)标志输出最少宽度.精度长度类型md:左对齐,若m比实际少时,按实际输出。泌ns:输出m位,取字符串(左起)n位,左补空格,nm or m省略时e.g.筲72s输入CHINA 输出CH知n“:输出浮点数,m为宽度,n为小数 点右边数位e.g.弋 输入3852.99输出3853.0长度:为h短整形虽,1为长整形虽 printf的格式控制的完整格式:%.n 1或h格式字符 卜面对组成格式说明的各项加以说明:%:表示格式说明的起始符号,不可缺少。有-表示左对齐输出,如省略表示右对齐输出。m,则口动取n 值,即保证n个字符正常输出。f格式:用来输出实数(包括单、双精度),以小数形式输出。有以卜几种用法:%f:不指定宽度,整数部分全部綸出并输出6位小数。%m.nf:输出共占m列,其中有n位小数,如数值宽度小丁 m左端补空格。nf:输出共占n列,其中有n位小数,如数值宽度小丁 m右端补空格。数法字符有符号十进制整数就浮点数包括和浮点数指数输出记数法浮点数不显无意义的零有符号十进制整数与相同无符号十进制整数八进制整数十六进制整数指针字符串标志左对齐右对齐空格若符号为正则显示空格负则显示企对类宽度精度长度类型左对齐若比实际少时按实际输出泌输出位取字符串左起位左补空格省略时筲输入输出知输出浮点数为宽度为小数点右边数位弋输入输出长度为短整形虽为长整形虽的格式控制的完整格式或格式字符卜面对组成格式填如省略表示指定空位不填指域宽即对应的输出项在输出设备上所占的字符数指精度用丁说明输出的实型数的小数位数为指定时隐含的精度为位或对整型指型对实型指型用丁将整型的格式字符修正为型格式字符格式字符用以指定输 e格式:以指数形式输出实数可用以卜形式:%e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。w ne和弔-m.ne:m、n和”-”字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整 个输出数据所占的宽度。g格式:门动选f格式或e格式中较短的一种输出,且不输岀无总义的零。关T printf函数的进一步说明:如果想输出字符犷,则应该在“格式控制”字符串中用连续两个%表示,如:printf 1.0/3);输出 0.333333%。-对于单蓿 度数,使用弔f格式符输出时,仅前7位是有效数字,小数6位.对于双精度数,使用%lf 式符输 出时,前16位是有效数字,小数6位.#扌合遗#::#;?;;!#!111 高 手指点对丁 mn的格式还可以用如下方法表示(例char ch2O2:printf(%*.*sn,m,n,ch):前边 的*定义的是总的宽度,后边的定义的是输出的个数分别对应外面的参数m和n数法字符有符号十进制整数就浮点数包括和浮点数指数输出记数法浮点数不显无意义的零有符号十进制整数与相同无符号十进制整数八进制整数十六进制整数指针字符串标志左对齐右对齐空格若符号为正则显示空格负则显示企对类宽度精度长度类型左对齐若比实际少时按实际输出泌输出位取字符串左起位左补空格省略时筲输入输出知输出浮点数为宽度为小数点右边数位弋输入输出长度为短整形虽为长整形虽的格式控制的完整格式或格式字符卜面对组成格式填如省略表示指定空位不填指域宽即对应的输出项在输出设备上所占的字符数指精度用丁说明输出的实型数的小数位数为指定时隐含的精度为位或对整型指型对实型指型用丁将整型的格式字符修正为型格式字符格式字符用以指定输o我想这种方法的好处是町以在语句之外对参数m和n赋值,从而控制输出格式。-今天()又看到一种输出 格式%n可以将所输出字符串的长度值赋绐一个变虽,见卜例:int slen;printf(hello world%n*,&slen);执行后变虽被赋值为11 另外:1、格式输出函数的一般形式 函数原型:int printf(char*format,argument,):函数功能:按规定格式向输出设备(一般为显示器)输出数据,并返回实际输出的字符数,若出 错,则返回负数。它使用的一般形式为:printf(“格式控制字符串,输出项列表);语句中“输出项列表”列出要输出的表达式(如常虽、变虽、运算符表达式、函数返回值等),它 可以是0个、一个或多个,每个綸出项之间用逗号(,)分隔。输出的数据可以是整数、实数、字符 和字符串。格式控制字符串必须用英文的双引号括起來,它的作用是控制输出项的格式和输出一些提示信 息,例如 int i=97:printf(i=%d,%cn,i,i);输出结果为:i=97,a 语句“printf(i=%d沦cn,i,i);”中的两个输出项都是变虽i,但却以不同的格式输出,一个输 出整型数97,另一个输出的却是字符a,其格式分别III M%d”与“弔c”來控制。语句wprintfri=%d,%cn,i,i);的格式控制字符串中“日 是普通字符,他将照原样输岀:“紀”与“紀”数法字符有符号十进制整数就浮点数包括和浮点数指数输出记数法浮点数不显无意义的零有符号十进制整数与相同无符号十进制整数八进制整数十六进制整数指针字符串标志左对齐右对齐空格若符号为正则显示空格负则显示企对类宽度精度长度类型左对齐若比实际少时按实际输出泌输出位取字符串左起位左补空格省略时筲输入输出知输出浮点数为宽度为小数点右边数位弋输入输出长度为短整形虽为长整形虽的格式控制的完整格式或格式字符卜面对组成格式填如省略表示指定空位不填指域宽即对应的输出项在输出设备上所占的字符数指精度用丁说明输出的实型数的小数位数为指定时隐含的精度为位或对整型指型对实型指型用丁将整型的格式字符修正为型格式字符格式字符用以指定输是格式控制符:n是转义字符,它的作用是换行。2.格式控制 格式控制山格式控制字符串实现。格式控制字符串山3部分组成:普通字符、转义字符、输出项格 式说明。(1)普通字符。普通字符在输出时,按原样输出,上要用丁输出提示信息。(2)转义字符。转义字符指明特定的操作,如n表示换行,t表示水平制表等。(3)格式说明部分由“”和“格式字符串”组成,他表示按规定的格式输出数据 格式说明的形式为:%flagswidth.precF X h Itype 各部分说明如卜:1.“:T表示该项为可选项,即可有可无,如printf(乓d:100);2.flags为可选择的标志字符,常用的标志字符有:1.-左对齐输出,默认为右对齐输出:2.+一正数输出加号(+),负数输出减号(-);3.空格一一正数输出空格代替加号(+),负数输出减号(-)。3.width为可选择的宽度指示符。1.用十进制正整数表示设昼输出值得最少字符个数=不足则补空格,多出则按实际输 出,默认按实际綸出,例如:2.printf(SdXn,100);printf C%6dn 100);printf 100);prirrtf(%+8n,100);3.输出结果为:LJ LJ L-J LJ 100?4.LJ LJ LJ 100 5.100L_Jl_ILJl_Jl_J l_Jl_Jl_JLJ+100 4.prec为可选的精度指示符 1.用“小数点”加“十进制正整数”表示,对“整数”、“实数”和“字符串”的输 出有如卜功能:对“整数,表示至少要输出的数字个数,不足补数字0多则原样綸出:对 “实数”,表示小数点后至多输出的数字个数,不足则补数字0.多则做舍入处理:对“字符 串”,表示最多綸出的字符个数.不足补空格,多则丢弃。数法字符有符号十进制整数就浮点数包括和浮点数指数输出记数法浮点数不显无意义的零有符号十进制整数与相同无符号十进制整数八进制整数十六进制整数指针字符串标志左对齐右对齐空格若符号为正则显示空格负则显示企对类宽度精度长度类型左对齐若比实际少时按实际输出泌输出位取字符串左起位左补空格省略时筲输入输出知输出浮点数为宽度为小数点右边数位弋输入输出长度为短整形虽为长整形虽的格式控制的完整格式或格式字符卜面对组成格式填如省略表示指定空位不填指域宽即对应的输出项在输出设备上所占的字符数指精度用丁说明输出的实型数的小数位数为指定时隐含的精度为位或对整型指型对实型指型用丁将整型的格式字符修正为型格式字符格式字符用以指定输2.例如:printfC%8.2fn=3.14159)jprintf(%8.5fn,3.14159);3.输出结果为:J LJ LJ II 3.14?4.*1 3.14159 5.F|N h|i为町选的输出长度修饰符,其功能如卜:1.F 一输出远指针存放的地址:2.N一一输出近指针存放的地址:3.h一一输出短整型数据的值:4.1一一输出长整型或双椿度型数据的值。5.例如:long n=40000;6.printf(乓81diT,n);/*因为 200*200 是长整型数据*/6.type为可选的格式字符,用來进行格式转换。#include int mainO short i3=30;unsigned i4=2123453;printf(*%d,%o,%xt%X,%ldt%hd,%u/nt i,i,it it i2,i3,i4);/如果是:则输不出结果 printfC%d,%ld/n,i,i2);试验不出Id 和%d 之间的差别,因为 long 是 4bytes printf(%hd,%hd/n/n/n*,i,i3);/试验了%hd 和d 之间的差别,因为 short 是 2bytes/for string and char 数法字符有符号十进制整数就浮点数包括和浮点数指数输出记数法浮点数不显无意义的零有符号十进制整数与相同无符号十进制整数八进制整数十六进制整数指针字符串标志左对齐右对齐空格若符号为正则显示空格负则显示企对类宽度精度长度类型左对齐若比实际少时按实际输出泌输出位取字符串左起位左补空格省略时筲输入输出知输出浮点数为宽度为小数点右边数位弋输入输出长度为短整形虽为长整形虽的格式控制的完整格式或格式字符卜面对组成格式填如省略表示指定空位不填指域宽即对应的输出项在输出设备上所占的字符数指精度用丁说明输出的实型数的小数位数为指定时隐含的精度为位或对整型指型对实型指型用丁将整型的格式字符修正为型格式字符格式字符用以指定输char chl=d;unsigned char ch2二160;char*str=Hello everyone!;printf(%0,%u,%s/n/n/n*,chi,ch2,str);/unsigned char 超过 128 的没有字符对应/for float and double,unsigned and signed can not be used with double and float double dl=265.5651445;/$g没有e格式,默认6位包括小数点前面的数,/%f没有e格式,默认6位仅只小数点后而包含6位/%e采用e格式,默认6位为转化后的小数点后而的6位 printf(*%f,%e,%g,%.7f/n:fl,dl,dl,dl);printf fl,dl,dl,dl);/%F is wrong printf(%8f,%.10,fl,dl);printf(*%.8e,%.lOf/n/n/n*,fl,dl);/for point int*iP=&i:数法字符有符号十进制整数就浮点数包括和浮点数指数输出记数法浮点数不显无意义的零有符号十进制整数与相同无符号十进制整数八进制整数十六进制整数指针字符串标志左对齐右对齐空格若符号为正则显示空格负则显示企对类宽度精度长度类型左对齐若比实际少时按实际输出泌输出位取字符串左起位左补空格省略时筲输入输出知输出浮点数为宽度为小数点右边数位弋输入输出长度为短整形虽为长整形虽的格式控制的完整格式或格式字符卜面对组成格式填如省略表示指定空位不填指域宽即对应的输出项在输出设备上所占的字符数指精度用丁说明输出的实型数的小数位数为指定时隐含的精度为位或对整型指型对实型指型用丁将整型的格式字符修正为型格式字符格式字符用以指定输char*iPl=new char;void*iP2;/,dangerous!printf(*%p,%p,%p/n/n/n*,iP,iPl,iP2);/其他知识:负号,表示左对齐(默认是右对齐):%6.3 6表示宽度,3表示粘度 char*s=Hello world!printf(*:%s:/n:%10s:/n:%.10s:/n:%10s:/n:%.15s:/n:%15s:/n:%15.10s:n:%-15.10s:/n/n/n*,S,s,s,st s,s,s,s);printf C*:%g:n:%10g:/n:%.lOg:n:%10g:/n:%.15g:/n:%15g:/n:%15.lOg:/n:%15.10g:/n/n/n*,ddd,ddd,ddd,ddd,ddd,ddd,ddd,ddd);还有一个特殊的格式%*.*,这两个星号的值分别由第二个和第三个参数的值指定 printf C%*s/n 8,abcdefgggggg);printfC%*.*f/n,3,3,1.25456f):return 0;数法字符有符号十进制整数就浮点数包括和浮点数指数输出记数法浮点数不显无意义的零有符号十进制整数与相同无符号十进制整数八进制整数十六进制整数指针字符串标志左对齐右对齐空格若符号为正则显示空格负则显示企对类宽度精度长度类型左对齐若比实际少时按实际输出泌输出位取字符串左起位左补空格省略时筲输入输出知输出浮点数为宽度为小数点右边数位弋输入输出长度为短整形虽为长整形虽的格式控制的完整格式或格式字符卜面对组成格式填如省略表示指定空位不填指域宽即对应的输出项在输出设备上所占的字符数指精度用丁说明输出的实型数的小数位数为指定时隐含的精度为位或对整型指型对实型指型用丁将整型的格式字符修正为型格式字符格式字符用以指定输