C语言之文件流常用API
本文总结了在C语言中与文件流相关的标准库函数。
文件流常用API
使用下列文件流API需要包含头文件stdio.h
。
函数 | 作用 | 注意事项 | |
---|---|---|---|
打开或关闭文件流 |
fopen
|
打开文件,返回指向FILE的指针 | 需要指定模式(如“r”, “w”, “a”等),并处理可能的文件打开错误 |
fclose
|
关闭文件流,释放流资源 | 确保每个打开的文件流最终都被关闭,避免资源泄露 | |
读写二进制文件流 |
fread
|
从文件流中读取数据 | 需要检查返回值以确定读取的数据量和是否遇到错误或EOF |
fwrite
|
向文件流中写入数据 | 需要检查返回值以确保数据正确写入 | |
逐字符读写文本文件流 |
fgetc
|
从文件流中读取下一个字符 | 在达到文件末尾或出现错误时返回EOF |
fputc
|
将一个字符写入文件流 | 返回写入的字符,若出现错误则返回EOF | |
逐行读写文本文件流 |
fgets
|
从文件流中读取字符串(一行) | 确保正确处理缓冲区长度和行尾字符 |
fputs
|
将字符串(不包括NUL终止符)写入文件流 | 不会自动添加换行符,需手动处理 | |
格式化读写文本文件流 |
fscanf
|
从文件流中格式化读取数据 |
与scanf 类似,但从文件流读取
|
fprintf
|
格式化输出到文件流 |
类似于printf ,但输出到文件流
|
|
文件流状态检查 |
feof
|
检查文件流的EOF标志 | 通常用于循环读取数据时判断文件是否结束 |
ferror
|
检查文件流的错误指示器 | 用于错误处理和调试 | |
文件定位 |
ftell
|
返回文件流的当前文件位置指示器 |
配合fseek 可实现文件的随机访问
|
fseek
|
设置文件流的文件位置指示器 | 可用于移动文件指针到特定位置 | |
rewind
|
将文件流的文件位置指示器重置到文件开头 |
等同于fseek(stream, 0, SEEK_SET)
|
|
刷新输出缓冲区 |
fflush
|
清空文件流的输出缓冲区 | 常用于确保所有输出已经从缓冲区写入文件 |