当前位置:首页 > 嵌入式 > 嵌入式大杂烩
[导读]来源:CSDN-恋猫大鲤鱼编译环境:Linux环境以g4.4.6编译成64位程序1.printf()简介printf()是C语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件,对应终端的屏幕。printf()申明于头文件stdio.h。函数原型:int...

来源:CSDN - 恋猫大鲤鱼


编译环境:Linux 环境以 g 4.4.6 编译成 64 位程序

1.printf() 简介

printf() 是 C 语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件,对应终端的屏幕。printf() 申明于头文件 stdio.h。

函数原型:

int printf ( const char * format, ... );
返回值:
正确返回输出的字符总数,错误返回负值。与此同时,输入输出流错误标志将被置值,可由指示器函数 ferror(FILE *stream) 来检查输入输出流的错误标志,如果 ferror() 返回一个非零值,表示出错。

调用格式:

printf("格式化字符串", 输出表列)
格式化字符串包含三种对象,分别为:
(1)字符串常量;
(2)格式控制字符串;
(3)转义字符。

字符串常量原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式控制字符串和各输出项在数量和类型上应该一一对应。其中格式控制字符串是以 % 开头的字符串,在 % 后面跟有各种格式控制符,以说明输出数据的类型、宽度、精度等。

2.格式控制字符串详解

printf() 的格式控制字符串组成如下:

%[flags][width][.prec][length]type
分别为:

%[标志][最小宽度][.精度][类型长度]类型。

2.1 类型(type)

首先说明类型,因为类型是格式控制字符串的重中之重,是必不可少的组成部分,其它的选项都是可选的。type 用于规定输出数据的类型,含义如下:

字符对应数据类型含义示例
d/iint输出十进制有符号 32bits 整数,i 是老式写法printf("%i",123);输出123
ounsigned int无符号8进制(octal)整数(不输出前缀0)printf("0%o",123);输出0173
uunsigned int无符号10进制整数printf("%u",123);输出123
x/Xunsigned int无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF(不输出前缀0x)printf("0x%x 0x%X",123,123);输出0x7b 0x7B
f/lffloat(double)单精度浮点数用f,双精度浮点数用lf(printf可混用,但scanf不能混用)printf("%.9f %.9lf",0.000000123,0.000000123);输出0.000000123 0.000000123。注意指定精度,否则printf默认精确到小数点后六位
Ffloat(double)与f格式相同,只不过 infinity 和 nan 输出为大写形式。例如printf("%f %F %f %F\n",INFINITY,INFINITY,NAN,NAN);输出结果为inf INF nan NAN
e/Efloat(double)科学计数法,使用指数(Exponent)表示浮点数,此处"e"的大小写代表在输出时“e”的大小写printf("%e %E",0.000000123,0.000000123);输出1.230000e-07 1.230000E-07
gfloat(double)根据数值的长度,选择以最短的方式输出,%f或%eprintf("%g %g",0.000000123,0.123);输出1.23e-07 0.123
Gfloat(double)根据数值的长度,选择以最短的方式输出,%f或%Eprintf("%G %G",0.000000123,0.123);输出1.23E-07 0.123
cchar字符型。可以把输入的数字按照ASCII码相应转换为对应的字符printf("%c\n",64)输出A
schar*字符串。输出字符串中的字符直至字符串中的空字符(字符串以空字符’\0‘结尾)printf("%s","测试test");输出:测试test
Swchar_t*宽字符串。输出字符串中的字符直至字符串中的空字符(宽字符串以两个空字符’\0‘结尾)setlocale(LC_ALL,"zh_CN.UTF-8");
wchar_t wtest[]=L"测试Test";
printf("%S\n",wtest);
输出:测试test | | p | void* | 以16进制形式输出指针 | printf("0x%p","lvlv");输出:0x000000013FF73350 | | n | int* | 什么也不输出。%n对应的参数是一个指向signed int的指针,在此之前输出的字符数将存储到指针所指的位置 | int num=0;
printf("lvlv%n",
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭