C++中的fopen的 r\w选项有何作用
时间: 2024-11-12 15:41:20 浏览: 13
C++期末考试题定义.pdf
在C++中,`fopen()`函数用于打开文件并返回一个指向`FILE`类型的指针,这个函数有两个参数:文件名和模式字符串。
`r` 和 `w` 是两个常用的模式选项:
1. `r` (read, 只读):如果文件已存在,它会打开文件以读取模式。如果文件不存在,尝试创建新文件将会失败(除非有权限),程序通常会抛出异常。在这种模式下,`fopen`不会覆盖已有内容,仅能读取现有数据。
2. `w` (write, 写入):如果文件已经存在,它会清空文件内容后再写入新的数据。如果文件不存在,会尝试创建一个新的文件。如果写操作过程中发生错误(如磁盘满),可能也会导致文件部分损坏。
示例:
```cpp
#include <fstream>
// 打开一个已存在的文件,只读模式
FILE* file_read = fopen("example.txt", "r");
if (!file_read) {
std::cerr << "Failed to open file in read mode." << std::endl;
}
// 打开一个文件,准备写入
FILE* file_write = fopen("new_file.txt", "w");
if (!file_write) {
std::cerr << "Failed to create or open file in write mode." << std::endl;
}
fclose(file_write); // 注意关闭文件
// 使用r+模式,既能读也能写
FILE* file_rw = fopen("example.txt", "r+");
if (!file_rw) {
std::cerr << "Failed to open file in read-write mode." << std::endl;
}
fclose(file_rw);
```
阅读全文