一.printf() : 格式化输出函数(英文全称: print format)
1. 十五个格式字符
#include<stdio.h>
main()
{
int a=-6,b=5;
//声明a,b变量为整数类型
int c=0x1b6;
//声明c变量为整数类型
char d='3';
//声明d变量为字符类型
char e[]="string";
//定义e为字符数组
float f=3.14;
//声明f变量为单精度型
double g=1.2345e7;
//声明g变量为双精度型
long double h=1654600000000.12456768;
//声明h变量为长双精度型
int i=0666;
//声明变量i为整数型
printf("1.带符号的十进制整数格式输出变量a: %d \n",a);
printf("2.带符号的十进制整数格式输出变量a: %i \n",a);
printf("3.无符号的十进制整数格式输出变量b: %u \n",b);
printf("4.有前缀的十六进制(小写字母)整数格式输出变量c: %#x \n",c);
printf("5.有前缀的十六进制(大写字母)整数格式输出变量c: %#X \n",c);
printf("6.无前缀的十六进制(小写字母)整数格式输出变量c: %x \n",c);
printf("7.无前缀的十六进制(大写字母)整数格式输出变量c: %X \n",c);
printf("8.字符格式输出变量d: %c \n",d);
printf("9.字符串格式输出字符数组e: %s \n",e);
printf("10.小数(浮点数,实数)格式输出变量f: %f \n",f);
printf("11.科学计数法格式输出变量g: %e \n",g);
printf("12.科学计数法格式输出变量g: %E \n",g);
printf("13.科学计数法或小数格式(不含无意义0)输出变量h: %g \n",h);
printf("14.科学计数法或小数格式(不含无意义0)输出变量h: %G \n",h);
printf("15.无前缀八进制格式输出变量i: %o \n",i);
}
运行效果:
2.附加符号
附加符号插入在 % 和 基本格式字符 字母之间 的, 起到一个附加效果.
比如上面的 %#x 就是插入了# 符号,从无前缀16进制格式变成了有前缀的16进制格式
#include<stdio.h>
main()
{
int a=-6,b=5;
//声明a,b变量为整数类型
int c=0x1b6;
//声明c变量为整数类型
char d='3';
//声明d变量为字符类型
char e[]="string";
//定义e为字符数组
float f=3.14;
//声明f变量为单精度型
double g=1.2300e7;
//声明g变量为双精度型
long double h=1650000000000.12456768;
//声明h变量为长双精度型
int i=0666;
//声明变量i为整数型
printf("1.带符号的十进制长整数格式输出变量a: %ld \n",a);
printf("2.有前缀的十六进制(大写字母)整数格式输出变量c: %#X \n",c);
printf("3.无前缀的十六进制(大写字母)长整数格式输出变量c: %lX \n",c);
printf("4.字符格式占5列右对齐输出变量d: %5c \n",d);
printf("5.字符串格式占10列左对齐输出字符数组e: %-10s \n",e);
printf("6.小数(浮点数,实数)且保留两位小数部分格式输出变量f: %.2f \n",f);
printf("7.有前缀八进制长整型格式输出变量i: %#lo \n",i);
printf("8.科学计数法或小数格式(含无意义0)输出变量h: %#G \n",h);
运行效果:
3.用printf()输出 %,\ 字符
#include<stdio.h>
main()
{
printf("输出一个斜杠: \\ \n");
printf("输出一个百分号: %% \n\n");
printf("再输出一个百分号: %c \n",'%');
printf("再输出一个斜杠: %c \n",'\\');
}
运行效果:
4.易错例子
https://blog.csdn.net/u012336596/article/details/113845222?spm=1001.2014.3001.5501#t2