C++文件操作详解:fopen, fclose, fputc等函数

需积分: 17 3 下载量 47 浏览量 更新于2024-08-05 收藏 108KB PDF 举报
"C++文件读写函数介绍" 在C++编程中,文件操作是不可或缺的部分,主要用于存储和读取数据。以下将详细介绍几个常见的文件读写函数:`fopen`、`fclose`、`fputc`和`fgets`。 1. `fopen` `fopen`函数用于打开一个文件,其基本原型为: ```cpp FILE* fopen(const char* filename, const char* mode); ``` 参数`filename`是你要打开的文件名,`mode`则是指定打开文件的方式。不同的模式有: - `"r"`:只读模式,文件必须存在。 - `"w"`:只写模式,如果文件存在会被清空,不存在则创建新文件。 - `"a"`:追加模式,如果文件存在则在末尾添加内容,不存在则创建新文件。 - `"r+"`:读写模式,文件必须存在。 - `"w+"`:读写模式,如果文件存在会被清空,不存在则创建新文件。 - `"a+"`:读写追加模式,如果文件存在则在末尾添加内容,不存在则创建新文件。 文件还可以以文本模式(默认)或二进制模式打开。文本模式会进行一些字符转换,比如将回车换行转换。二进制模式则不进行任何转换。可以通过设置全局变量`_fmode`来改变默认打开模式。 例如: ```cpp FILE* fp; if ((fp = fopen("123.456", "wb")) != NULL) { puts("打开文件成功"); } else { puts("打开文件失败"); } ``` 2. `fclose` `fclose`函数用于关闭由`fopen`打开的文件,原型为: ```cpp int fclose(FILE* fp); ``` 成功关闭返回0,失败返回EOF。在结束文件操作时,一定要调用`fclose`关闭文件,以避免数据丢失。 示例: ```cpp fclose(fp); ``` 3. `fputc` `fputc`函数用于向流中写入一个字符,原型为: ```cpp int fputc(int c, FILE* stream); ``` 它将`c`写入`stream`指定的文件,并返回写入的字符,失败返回EOF。 示例: ```cpp fputc('X', fp); ``` 4. `fgets` `fgets`用于从流中读取一行,原型为: ```cpp char* fgets(char* s, int n, FILE* stream); ``` 它最多读取`n-1`个字符,读取的内容包括换行符,但不包括终止的空字符'\0'。最后会自动添加'\0',所以总长度为`n`。如果遇到文件结束或者读取了`n-1`个字符,`fgets`会停止读取。 示例: ```cpp char buffer[100]; fgets(buffer, 100, fp); ``` 除了这些基本的函数,C++标准库还提供了其他如`fread`、`fwrite`、`fprintf`、`scanf`等函数,用于更复杂的文件读写操作。理解并熟练使用这些函数是C++编程中进行文件操作的基础。