使用read写入
时间: 2023-07-30 11:09:39 浏览: 53
如果你使用的是C++标准库,可以使用`std::ofstream`和`std::ifstream`类实现文件的写入和读取操作。其中,`ofstream`类用于写入文件,`ifstream`类用于读取文件。以下是使用`read`方法写入文件的示例代码:
```c++
#include <iostream>
#include <fstream>
#include <vector>
int main() {
std::vector<int> vec{1, 2, 3, 4, 5}; // 要写入文件的向量
std::ofstream outfile("filename.txt", std::ios::out | std::ios::binary); // 以二进制格式打开文件
if (outfile.is_open()) {
// 将vector中的数据写入文件
outfile.write(reinterpret_cast<const char*>(vec.data()), vec.size() * sizeof(int));
outfile.close();
std::cout << "文件写入成功!" << std::endl;
} else {
std::cout << "文件打开失败!" << std::endl;
}
return 0;
}
```
以上代码将`vec`中的数据写入到`filename.txt`文件中。使用`write`方法可以将二进制数据写入文件,需要注意的是第一个参数要将指针转换为`const char*`类型。`sizeof(int)`用于计算每个元素的字节数,`vec.size() * sizeof(int)`表示要写入的总字节数。文件打开模式为`ios::out | ios::binary`,即以二进制格式打开文件并且清空文件内容。
如果要读取文件中的二进制数据,可以使用`read`方法,以下是使用`read`方法从文件中读取数据的示例代码:
```c++
#include <iostream>
#include <fstream>
#include <vector>
int main() {
std::vector<int> vec(5); // 读取文件中的向量
std::ifstream infile("filename.txt", std::ios::in | std::ios::binary); // 以二进制格式打开文件
if (infile.is_open()) {
// 从文件中读取数据
infile.read(reinterpret_cast<char*>(vec.data()), vec.size() * sizeof(int));
infile.close();
std::cout << "文件读取成功!" << std::endl;
// 输出读取到的数据
for (int i : vec) {
std::cout << i << " ";
}
std::cout << std::endl;
} else {
std::cout << "文件打开失败!" << std::endl;
}
return 0;
}
```
以上代码从`filename.txt`文件中读取二进制数据,并将其存入到`vec`向量中。使用`read`方法可以从文件中读取二进制数据,需要注意的是第一个参数要将指针转换为`char*`类型。`vec.size() * sizeof(int)`表示要读取的总字节数。文件打开模式为`ios::in | ios::binary`,即以二进制格式打开文件并且不清空文件内容。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)