C语言IO函数详解:字符、字符串与格式化输入输出
需积分: 9 31 浏览量
更新于2024-08-11
收藏 15KB DOC 举报
"C语言常用IO函数"
在C语言中,输入/输出(Input/Output,简称IO)是程序与外部世界交互的主要方式。本资源主要介绍了C语言中的一些常用IO函数,包括字符IO、字符串IO和格式化IO,这些都是进行基本文件操作和控制台交互的基础。
1. **字符IO函数**:
- `int getchar()`:这个函数从标准输入流`stdin`读取一个字符。如果成功,它返回读取到的字符,出错则返回EOF(通常为-1)。
- `int fgetc(FILE *fp)`:类似于`getchar()`,但它从指定的文件流`fp`读取一个字符。返回值与`getchar()`相同。
- `int getc(FILE *fp)`:与`fgetc()`功能相同,但可能有更高的编码效率,同时也可以作为宏实现。
- `int putchar(int ch)`:将整型字符`ch`写入标准输出流`stdout`。成功时返回字符,出错返回EOF。
- `int fputc(int c, FILE *fp)`:与`putchar()`类似,但向指定的文件流`fp`写入字符。返回值也与`putchar()`相同。
- `int putc(int c, FILE *fp)`:等同于`fputc()`,具有更高的编码效率,可重定向。
2. **字符串IO函数**:
- `char *gets(char *str)`:从`stdin`读取一个字符串(不包括换行符)并存储到`str`中,成功返回`str`的指针,错误则返回`NULL`。请注意,由于安全原因,`gets()`在较新的C标准中已被废弃。
- `char *fgets(char *str, int n, FILE *fp)`:从文件流`fp`读取最多`n-1`个字符(包括换行符)到`str`,并自动添加一个`'\0'`作为字符串结束符。成功返回`str`的指针,遇到EOF或错误则返回`NULL`。
- `int puts(const char *str)`:将字符串`str`输出到`stdout`,并在其后添加一个换行符。成功返回非负值,错误返回EOF。
- `int fputs(const char *str, FILE *fp)`:与`puts()`类似,但向指定的文件流`fp`写入字符串`str`。返回值与`puts()`相同。
3. **格式化IO函数**:
- `int scanf(const char *format, ...)`:从`stdin`根据`format`格式化读取数据。成功时返回匹配的项数,出错返回EOF。
- `int fscanf(FILE *fp, const char *format, ...)`:与`scanf()`类似,但从文件流`fp`读取数据。返回值相同。
- `int printf(const char *format, ...)`:将格式化的输出写入`stdout`。成功返回非负值,错误返回EOF。
- `int fprintf(FILE *fp, const char *format, ...)`:将格式化的输出写入文件流`fp`。返回值与`printf()`相同。
这些函数是C语言编程中最基础的IO操作,它们使得程序能够读取用户输入、输出信息、处理文件内容等。理解和熟练运用这些函数对于编写任何C程序都是至关重要的。在实际编程中,还需要注意错误处理、内存管理和缓冲区管理等相关问题,以确保程序的稳定性和安全性。
2016-06-08 上传
2007-11-08 上传
2021-10-06 上传
2010-03-05 上传
2021-10-12 上传
2022-07-02 上传
2022-11-30 上传
2022-07-02 上传
2022-07-08 上传
weixin_38642636
- 粉丝: 12
- 资源: 931
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析