306 字
1 分钟
【C】输入输出与类型转换
2026-05-19

标准 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

常见提升顺序(简化):charintlongfloatdoublelong double

强制转换(显式)#

double d = 3.14159;
int i = (int)d;
  • 强制转换只影响该表达式,不改变原变量类型
  • 能自动转换的情况通常也能强制转换;反之不一定(如指针类型间需谨慎)
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

【C】输入输出与类型转换
https://lysj.work/posts/studynotes/c/c输入输出与类型转换/
作者
Sekiro
发布于
2026-05-19
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录