4.4.1 printf() 函数
- 转换说明 (conversion specification)
ANSI C 标准为 printf() 提供的转换说明:
4.4.2 使用 printf()
打印 %
使用 %%
方式
4.4.3 printf() 的转换说明修饰符
表中有些项需要编译器支持 C99:
1. 使用修饰符和标记的示例
2. 学以致用
4.4.4 转换说明的意义
1. 转换不匹配
- %hd: short int, 2B
2. printf() 的返回值
- 返回打印字符的个数
- 有打印错误返回负数
3. 打印较长的字符串
4.4.5 使用 scanf()
1. 从 scanf() 角度看输入
读取字符串时自动添加 \0
.
- scanf() 不常用
2. 格式字符串中的普通字符
除空格字符外的普通字符必须与输入字符串严格匹配
scanf("%d,%d", &n, &m);
输入类似:
88,121
88, 121
// 多行也行
88,
121
格式字符串中的空白意味着跳过下一个输入项前面的所有空白:
scanf("%d ,%d", &n, &m)
输入类似:
88,121
88 ,121
88 , 121
除了 %c, 其他转换说明都会自动跳过待输入值前面所有的空白
3. scanf() 的返回值
- 返回成功读取的项数
4.4.6 printf() 和 scanf() 的*修饰符
printf() 中的 * 的作用: 动态设置宽度:
scanf() 中的 * 的作用: 跳过输入的数字:
4.4.7 printf() 的用法提示
指定宽度可以实现列对齐的效果:
printf("%9d %9d %9d\n", val1, val2, val3);
不指定过长的宽度:
printf("Count Beppo ran %.2f miles in 3 hours.\n", distance);