1. C语言输入输出函数基础解析
在C语言编程中,输入输出(I/O)是与用户交互的基础手段。标准I/O函数主要定义在<stdio.h>头文件中,它们可以分为两大类:格式化I/O函数和字符/字符串I/O函数。
1.1 标准输入输出流
C语言将物理设备抽象为三种标准流:
- stdin:标准输入流(通常对应键盘)
- stdout:标准输出流(通常对应显示器)
- stderr:标准错误流(通常也输出到显示器)
这些流在程序启动时自动打开,无需手动初始化。理解这些概念对后续函数的使用至关重要,因为大多数I/O函数都基于这些流进行操作。
1.2 格式化输出函数:printf()
printf()是最常用的输出函数,其原型为:
c复制int printf(const char *format, ...);
典型用法示例:
c复制int age = 25;
float height = 1.75f;
printf("年龄:%d岁,身高:%.2f米\n", age, height);
格式说明符详解:
- %d:十进制整数
- %f:浮点数(默认6位小数)
- %.2f:保留2位小数的浮点数
- %c:单个字符
- %s:字符串
- %p:指针地址
- %x:十六进制整数
注意事项:格式字符串中的占位符数量必须与后续参数数量严格匹配,否则会导致未定义行为。在嵌入式系统中,printf可能会占用较多资源,需谨慎使用。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 格式化输入函数深度剖析
2.1 scanf()函数详解
scanf()是基础的格式化输入函数,原型为:
c复制int scanf(const char *format, ...);
典型使用场景:
c复制int count;
float price;
char code[10];
printf("输入商品信息(数量 单价 编码):");
int items_read = scanf("%d %f %9s", &count, &price, code);
关键特性:
- 返回值:成功读取的项数,可用于错误检测
- 缓冲区问题:输入后会留下换行符,可能影响后续读取
- 安全性:不检查缓冲区边界,可能导致溢出
