306 字
1 分钟
【C】输入输出与类型转换
标准 I/O 函数
| 函数 | 作用 |
|---|---|
printf | 格式化输出到标准输出 |
scanf | 格式化从标准输入读取 |
getchar | 读入一个字符 |
putchar | 输出一个字符 |
头文件:#include <stdio.h>
scanf 注意事项
吸收换行符问题:用 scanf 读单个字符时,若之前有输入并敲了回车,缓冲区可能残留 \n,会被 %c 读走。
解决办法:
getchar(); // 先吃掉多余换行// 或scanf(" %c", &ch); // %c 前加空格,跳过空白字符多类型输入:格式串与参数类型、顺序必须一致。
int a;float b;scanf("%d %f", &a, &b);安全:始终检查 scanf 返回值(成功赋值的项数),避免非法输入导致未定义行为。
类型转换
自动转换(隐式)
赋值转换
将右侧表达式类型转换为左侧变量类型,可能丢失精度。
double a = 3.14;int i = a; // i 为 3,小数部分截断算术转换
不同类型参与运算时,按「向更大类型提升」规则统一类型后再运算。
int a = 10;float b = 3.14f;double c = a + b; // a 转为 float,再与 b 运算,结果常为 double常见提升顺序(简化):char → int → long → float → double → long double。
强制转换(显式)
double d = 3.14159;int i = (int)d;- 强制转换只影响该表达式,不改变原变量类型
- 能自动转换的情况通常也能强制转换;反之不一定(如指针类型间需谨慎)
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
【C】输入输出与类型转换
https://lysj.work/posts/studynotes/c/c输入输出与类型转换/ 部分信息可能已经过时
相关文章 智能推荐
