目录
输出函数
1. printf()
2. putchar
3. puts
备注:此文所有代码均在Visual Stdio 2022 IDE中完成
输出函数
| 输出函数 | 作用 |
|---|---|
| printf() | 输出各种数据类型 |
| putchar() | 输出字符 |
| puts() | 输出字符串,结束后自动换行 |
1. printf()
#include //函数头
int printf(const char *format,...); //函数声明
//format表示你要输出数据格式,const表示修饰的变量不可改变,“...”表示占位操作符
printf("格式控制符",待打印项); //一般形式
#include
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" |
示例一
#includeint 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]nn", a); //6位宽度,从右打印 printf("[%f]n", b); printf("[%6.3f]n", b); printf("[%e]n", b); printf("[%16.3E]nn", c);//e计数法表示小数点右边位数(3位) return 0; }
示例二
#includeint main(void) { char ch[33] = "xyz abc!"; printf("[%2s]n", ch); printf("[%12.5s]n", ch); printf("[%012.5s]n", ch); printf("[%-12.5s]nn", ch);//打印字符串五位字符 printf("*%5d* *%05.3d* *%-5.3d*n",6,6,6,6); printf("*% 5d* *% 5d*n",20, -20); printf("*%5x* *%5X* *%5#x*n", 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
int main(void)
{
char a = 'w';
putchar('Y'); putchar('n');
putchar(122); putchar('n');
putchar(a); putchar('n');
return 0;
}
putchar函数基本格式:int putchar( int Character);
① 当Character为一个被单引号(英文状态下)引起来的字符时,输出该字符(注:该字符也可为转义字符)。如:putchar('W'); putchar('t');
② 当Character为一个介于0~127(包括0及127)之间的十进制整型数时,它会被视为对应字符的ASCII代码,输出该ASCII代码对应的字符。如:putchar(127);
③ 当Character为一个事先用char定义好的字符型变量时,输出该变量所指向的字符。
3. puts
puts()函数用来向标准输出设备(屏幕)写字符串并换行。
其函数原型为:int puts(const char *s);
s可以是字符指针变量名、字符数组名,或者直接是一个字符串常量。输出时只有遇到 ' ' 也就是字符串结束标志符才会停止。puts()函数的作用与语printf("%sn", s)相同。
#include
int main(void)
{
char ch[13] = "hello word!";
puts(ch);
printf("%sn", ch);
puts("一句卧槽行天下");
return 0;
}
puts()函数用来向标准输出设备(屏幕)写字符串并换行。
其函数原型为:int puts(const char *s);
s可以是字符指针变量名、字符数组名,或者直接是一个字符串常量。输出时只有遇到 ' ' 也就是字符串结束标志符才会停止。puts()函数的作用与语printf("%sn", s)相同。



