史上最全的C语言格式字符解读

为了方便对不同类型的数、字符、字符串进行输入、输出操作C语言定义了各种不同的格式字符。这些格式字符都有一个共同的特点就是以%开始,在%后面加不同的字母或数字和字母的组合表达出不同的含义。在这里总共整理总结了15个格式字符并对各个格式字符进行了简单的演示。如果文中有错误之处望指正,感激不尽!!!

一、C语言格式字符表

序号 字符 含义
1 %d int (整形)
2 %ld 按十进制有符号长型整数输入或输出
3 %md 其中m为指定输出宽度,用于输出整形数
4 %s 用于输出字符串
5 %x 十六进制形式输出结果(字母小写)
6 %X 十六进制形式输出结果(字母大写)
7 %lx 十六进制形式输出结果(比%x和%X可以输出更多)
8 %c 单个字符的输入或输出
9 %o 以八进制数形式输出整数
10 %u 十进制无符号整型数输入或输出
11 %p 读取存储地址
12 %f 单精度浮点型数据
13 %lf 双精度浮点型数据
14 %.mlf 双精度浮点型数据(其中m为指定小数点后的位数)
15 %le 使用科学计数法输入输出字符

二、各个格式字符演示

#include <stdio.h>
int main()
{
	int a=1234567;
	char b[]="hello,world!";
	int c = -10086;
	float d=12.3456;
	printf("1 %%d型%d\n",a);
	printf("2 %%ld型%ld\n",a);
	printf("3 %%7d型%7d\n",a);
	printf("4 %%s型%s\n",b);
	printf("5 %%x型%x\n",a);
	printf("6 %%X型%X\n",a);
	printf("7 %%lx型%lx\n",a);
	printf("8 %%c型%c\n",b);
	printf("9 %%o型%o\n",a);
	printf("10 %%u型%u\n",c);
	printf("11 %%p型%p\n",a);
	printf("12 %%f型%f\n",d);
	printf("13 %%lf型%lf\n",d);
	printf("14 %%.3f型%.3f\n",d);
	printf("15 %%le型%le\n",d);
	return 0;
 } 

运行结果
在这里插入图片描述
特别说明
1.表中第三种格式字符在输出的时候如果长度小于m的大小则按照右对齐进行填充如果需要左对齐在前面加上负号即可。
2.因为科学表示法最终是使用小数形式表示,所以需要被科学表示法表示的变量应被定义为float型。
3.在使用%.mf的时候一定要注意只是在输出的时候才引用,举栗

#include <stdio.h>
int main()
{
	float a;
	printf("请输入一个数字\n");
	scanf("%f",&a);
	printf("你输入的是:%.2f",a);
	return 0;
}

可以看到我们在scanf的地方格式还是%f,%.mf只是在输出的时候进行四舍五入操作。
下面是错误示范

#include <stdio.h>
int main()
{
	float a;
	scanf("%.2f",&a);
	printf("%.2f",a);
	return 0;
}

参考资料
1.百度百科:格式字符

原创文章 55 获赞 17 访问量 3643

猜你喜欢

转载自blog.csdn.net/qq_42942881/article/details/105202736