c++ 用 fopen_s 和fwrite 写入文件
时间: 2024-10-07 16:05:20 浏览: 77
`fopen_s` 和 `fwrite` 是 C++ 中用于文件操作的两个标准库函数,它们分别对应于 C 标准库中的 `fopen` 和 `fwrite` 函数,但在 C++17 及以后的标准中,为了增强对异常处理的支持,引入了安全版本。
`fopen_s` 函数是安全打开文件的函数,它会检查文件是否成功打开,如果发生错误则返回 NULL 或者抛出异常,其原型如下:
```cpp
#include <cstdio>
#include <fstream>
std::FILE* fopen_s(char* filename, size_t n缓冲区大小, const char* mode);
```
要使用它写入文件,你需要先创建一个指向 `FILE` 类型的指针,并尝试打开文件,例如:
```cpp
char filename[] = "example.txt";
std::FILE* file = nullptr;
if (fopen_s(&file, sizeof(filename), "w")) {
std::cerr << "Failed to open file." << std::endl;
// 错误处理...
} else {
// 文件已成功打开
// 使用 fwrite 进行写入
const char data[] = "Hello, this is an example.";
size_t bytes_written = fwrite(data, 1, sizeof(data) - 1, file); // 注意最后一个元素可能有换行符
if (bytes_written != sizeof(data) - 1) {
std::cerr << "Error writing to file." << std::endl;
fclose(file);
} else {
// 写入完成,关闭文件
fclose(file);
}
}
```
`fwrite` 函数用于将数据块写入到指定的位置,它的原型如下:
```cpp
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
```
阅读全文
相关推荐



















