目录
备注:此文所有代码均在Visual Stdio 2022 IDE中完成
备注:
本文代码均在Visual Stdio 2022 IDE中完成。
本人尚且新手,文学习笔记,非教学使用。
本人会不断改正错误,逐步完善知识点。
本文若有不当,恳请指正,再三感谢。
输出函数
输出函数 | 作用 |
---|---|
printf() | 输出各种数据类型 |
putchar() | 输出字符 |
puts() | 输出字符串,结束后自动换行 |
1. printf()
#include<stdio.h> //函数头
int printf(const char *format,...); //函数声明
//format表示你要输出数据格式,const表示修饰的变量不可改变,“...”表示占位操作符
printf("格式控制符",待打印项); //一般形式
ptintf()函数scanf()函数工作原理几乎相同。格式控制符控制输出的数据形式,待打印项必须与格式控制符一一对应。下面例举了常见的格式控制符。
格式控制符 | 输出 |
---|---|
%c | 输出一个单一的字符 |
%s | 输出一个字符串 |
%d | 有符号十进制整数 |
%u | 无符号十进制整数 |
%f | 浮点数,十进制计数法 |
%e、%E | 浮点数,e计数法 |
%g、%G | 根据值不同自动选择%f或%e(%E)。 |
%o | 无符八进制整数 |
%x、%X | 无符号十六进制整数 |
%p | 指针 |
%% | 打印一个百分号 |
在%和控制字符之间插入修饰符可修饰基本的格式控制符。达到更好的输出效果。
修饰符 | 含义 |
---|---|
-(标记) | 待打印项左对齐,从字段(有长度)左侧开始打印该项。例:"%-8d" |
+(标记) | 待打印项右对齐。符号值为正,前面显+号。符号值负,前面显-号。例:"%+8d","%+8.3f" |
#(标记) | 把结果转换另一种形式,八进制为0;十六进制为0x或0X。对于浮点数格式,#保证了即使后面没有任何数字,也打印一个小数点字符。对于%g和%G格式,#防止结果后面0被删除。例:"%#o","%3X","#8.0f" |
0(标记) | 对于数值格式,前导0填充字段宽度。整数格式,出现-标记或指定精度,则忽略该标记。例:"%08d","%08.3f" |
数字 | 最小字段宽度。如果该字段不能容纳待打印的数字或字符串,系统会使用更宽字段。例:"%8d","%8.3f" |
.数字 | 精度。对于%s,表示打印字符的最大数量。对于整形,表示打印数字最小位数。只使用.表示其后跟随一个0,所以%.f和%.0f相同。例:"%5.2f"打印一个浮点数,字符宽度为5字符,其中小数点后有两有效数字 |
h | 和整形控制字符一起使用,表示有符号或无符号short、int类型。例:"%hd","%hu" |
l | 和整形控制字符一起使用,表示有符号或无符号long int类型。和浮点数控制字符一起使用,表示double类型。例:"%ld","%lf" |
ll | 和整形控制字符一起使用,表示有符号或无符号 long long int类型。例:"%lld","%8llu" |
L | 和浮点控制字符一起使用,表示有符号或无符号long double类型。例:"%Lf","10.4Le" |
示例一
#include<stdio.h>
int main(void)
{
int a=678;
float b = 3.555667;
float c = 1234.567;
printf("[%2d]\n", a); //修饰符2位,678三位自动拓宽
printf("[%+6d]\n", a); //6位宽度,3位有效数字
printf("[%06d]\n", a);
printf("[%-6d]\n\n", a); //6位宽度,从右打印
printf("[%f]\n", b);
printf("[%6.3f]\n", b);
printf("[%e]\n", b);
printf("[%16.3E]\n\n", c);//e计数法表示小数点右边位数(3位)
return 0;
}
示例二
#include<stdio.h>
int main(void)
{
char ch[33] = "xyz abc!";
printf("[%2s]\n", ch);
printf("[%12.5s]\n", ch);
printf("[%012.5s]\n", ch);
printf("[%-12.5s]\n\n", ch);//打印字符串五位字符
printf("*%5d* *%05.3d* *%-5.3d*\n",6,6,6,6);
printf("*% 5d* *% 5d*\n",20, -20);
printf("*%5x* *%5X* *%5#x* *%#5x*\n", 31, 31, 31, 31);
printf("*%5o* *%#5o*\n", 31, 31);
return 0;
}
2. putchar
putchar函数基本格式:int putchar( int Character);
① 当Character为一个被单引号(英文状态下)引起来的字符时,输出该字符(注:该字符也可为转义字符)。如:putchar('W'); putchar('\t');
② 当Character为一个介于0~127(包括0及127)之间的十进制整型数时,它会被视为对应字符的ASCII代码,输出该ASCII代码对应的字符。如:putchar(127);
③ 当Character为一个事先用char定义好的字符型变量时,输出该变量所指向的字符。
#include<stdio.h>
int main(void)
{
char a = 'w';
putchar('Y'); putchar('\n');
putchar(122); putchar('\n');
putchar(a); putchar('\n');
return 0;
}
3. puts
puts()函数用来向标准输出设备(屏幕)写字符串并换行。
其函数原型为:int puts(const char *s);
s可以是字符指针变量名、字符数组名,或者直接是一个字符串常量。输出时只有遇到 '\0' 也就是字符串结束标志符才会停止。puts()函数的作用与语printf("%s\n", s)相同。
#include<stdio.h>
int main(void)
{
char ch[13] = "hello word!";
puts(ch);
printf("%s\n", ch);
puts("一句卧槽行天下");
return 0;
}