这篇文章最后更新于 some 天前,内容可能已经过时。
数据的输出
在C语言中,我们有多种方式可以将数据输出到控制台。最常用的是 printf 函数和 putchar 函数。
1. putchar 函数
1.1 格式
1.2 参数说明
1.3 功能
1.4 返回值
- 正常情况下返回显示字符的ASCII码值(如
'A' 返回 65)。
- 如果出错,返回
EOF(通常为 -1)。
1.5 示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #include <stdio.h>
int main() { char ch = 'A'; int ascii = 65; printf("使用 putchar 输出字符: \n"); putchar(ch); putchar('\n'); putchar(ascii); putchar('\n'); return 0; }
|
运行结果:
1.6 说明
putchar() 函数虽然参数是 int 类型,但实际上是用于输出字符
- 当传入整型变量时,它会将其解释为其对应的 ASCII 码值
- 本例中,65 对应的 ASCII 字符是 ‘A’,因此两个不同的输入方式产生了相同的输出结果
2. printf 函数
2.1 格式
1
| int printf(const char *format, ...);
|
2.2 功能
2.3 常用格式化符号
| 格式符 |
类型 |
示例 |
%d |
十进制整数 |
printf("%d", 123); |
%f |
浮点数 |
printf("%f", 3.14); |
%c |
字符 |
printf("%c", 'A'); |
%s |
字符串 |
printf("%s", "Hello"); |
%.2f |
保留两位小数 |
printf("%.2f", 3.14159); |
%x |
十六进制整数 |
printf("%x", 255); |
2.4 示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include <stdio.h>
int main() { int age = 20; float price = 9.99f; char grade = 'B'; printf("年龄:%d\n", age); printf("价格:%.2f\n", price); printf("等级:%c\n", grade); printf("十六进制:%x\n", 255); printf("学生信息:姓名-%s,年龄-%d,成绩-%.1f\n", "张三", 18, 89.5); return 0; }
|
运行结果:
1 2 3 4 5
| 年龄:20 价格:9.99 等级:B 十六进制:ff 学生信息:姓名-张三,年龄-18,成绩-89.5
|
2.5 格式化输出详解
(1) 宽度控制
1 2 3
| int num = 42; printf("'%10d'\n", num); printf("'%-10d'\n", num);
|
(2) 浮点数精度控制
1 2
| double pi = 3.1415926535; printf("%.3f\n", pi);
|
(3) 填充字符
1 2
| int num = 5; printf("%05d\n", num);
|
3. 注意事项
putchar 只能输出单个字符,适合简单的字符显示
printf 支持复杂的格式化输出,适合混合数据类型的输出
- 使用
printf 时要注意格式字符串与参数类型的一致性,否则可能导致未定义行为
- 常用格式符对应关系:
%d 整数
%f 浮点数
%c 字符
%s 字符串
%% 输出百分号本身
- 格式字符串中的普通字符会原样输出
- 如果要输出百分号
%,需要写成 %%
- 格式说明符的数量必须与输出项数量一致
- 对于不匹配的格式说明符和参数,可能会导致不可预测的结果
printf 的返回值是实际输出的字符数,可用于后续计算