教你一口气学会 printf

一.含义

printf=print(打印)+f(format(格式化))

二.用法

将参数文本传输到屏幕上

注意:printf不会自动在行尾添加换行符,运行结束后光标停留在输出结束的地方,需自主添加换行符

printf的使用需要包含头文件(#include <stdio.h>)

三.占位符

1.特点

占位符第一个字符一定为%

2.使用

可以在输出文本中指定占位符

#include <stdio.h> int main() { printf("There are %d apples",3); return 0; }

一个文本中可以出现多个占位符

#include <stdio.h> int main() { printf("%s eats %d apples"); return 0; }

注意:printf()参数与占位符有对应关系,n个占位符对应n+1个参数,若参数与占位符个数不匹配,printf()可能会输出内存中的任一值

3.常用占位符

%c 字符char

%d int/signed int 10进制

%u unsigned int 10进制

%hd shout int/shout signed int 10进制

%hu shout unsigned int 10进制

%ld long int/long signed int 10进制

%lu long unsigned int 10进制

%lld long long int 10进制

%llu long long unsigned int 10进制

%f float double

%p 指针(打印地址)

%s 字符串

%x 16进制整数

%zu size_类型

四.输出格式

1.限定宽度

允许限定占位符的最小宽度

#include <stdio.h> int main() { printf("%9d",123); return 0; }

上面事例中%9d表示输出数据的宽度至少为9位,若不满9位,这在输出之前添加空格。输出的值默认是向右对齐,即输出内容前面会有空格,若希望改成向左对齐,即在输出内容后面添加空格,则需在%后加-

#include <stdio.h> int main() { printf("%-9",12345678); return 0; }

打印小数时方法不变,但默认打印小数点后6位,在输出小数时小数点也算一位

2.总是显示正负号

默认情况下printf()不对正数显示整号,只对负数显示负号,若要对正数显示整号,在%后加+

3.限定小数位

想要小数点保留几位,就将占位符写成%.几f

#include <stdio.h> int main() { printf("%.5f",3.141592658577429); return 0; }

与限定宽度占位符结合使用

#include <stdio.h> int main() { printf("%6.1f",3.1415926); return 0; }

最小宽度和限定位数都可以用*代替,通过printf的参数传入

#include <stdio.h> int main() { printf("%*.*f",6,1,3.1415926); return 0; }

4.输出字符串

%s用来输出字符串,默认是全部输出,如果只想输出开头一部分,可以用%.ms指定输出长度,m代表输出长度

#include <stdio.h> int main() { printf("%4s","Hello world"); return 0; }