为了方便对不同类型的数、字符、字符串进行输入、输出操作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.百度百科:格式字符