C++如何写入二进制文件?
时间: 2024-06-13 19:07:28 浏览: 14
以下是C++写入二进制文件的示例代码:
```cpp
#include <iostream>
#include <fstream>
using namespace std;
int main() {
int data1[10] = { 1,2,3,4,5,6,7,8,9,10 };
ofstream outfile("mapA", ios::binary);
if (!outfile) {
cout << "文件打开失败!" << endl;
return 0;
}
outfile.write((char*)data1, sizeof(data1));
outfile.close();
return 0;
}
```
以上代码中,我们使用了`ofstream`类来打开文件,并使用`write()`函数将数据写入文件中。其中,`ios::binary`参数表示以二进制方式打开文件。
相关问题
c++unsign char写入二进制文件
在C++中,我们可以使用ofstream类将unsigned char数据写入二进制文件。下面是一个示例代码:
```c++
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream file("test.bin", ios::binary);
unsigned char data[] = {0x48, 0x65, 0x6c, 0x6c, 0x6f}; // "Hello" in ASCII
file.write(reinterpret_cast<const char*>(data), sizeof(data));
file.close();
return 0;
}
```
在这个示例中,我们使用ofstream类创建了一个名为test.bin的二进制文件,并且使用ios::binary标志指定了写入模式。然后,我们定义了一个unsigned char数组data,它包含了ASCII编码的"Hello"字符串。最后,我们使用write()函数将data数组写入文件中。
需要注意的是,我们在write()函数中使用了reinterpret_cast<const char*>来强制转换data数组的类型为const char*,这是因为write()函数需要一个const char*类型的参数。如果我们直接将data数组传递给write()函数,编译器会给出一个警告或错误。
c++以二进制写入文件
要将C++中的数据以二进制形式写入文件,可以使用文件流中的 write() 函数。
以下是一个简单的示例代码,将一个整数以二进制形式写入到文件中:
```c++
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int num = 1024;
// 打开文件
ofstream ofs("binary_file.bin", ios::out | ios::binary);
// 写入数据
ofs.write(reinterpret_cast<const char*>(&num), sizeof(num));
// 关闭文件
ofs.close();
return 0;
}
```
解释:
- `ofstream` 是 C++ 中用于写入文件的输出流类。
- `ofs("binary_file.bin", ios::out | ios::binary)` 创建一个名为 "binary_file.bin" 的二进制文件,并以二进制模式打开文件。
- `reinterpret_cast<const char*>(&num)` 将整数 num 强制转换为 `const char*` 类型,以便 write() 函数可以正确地写入二进制数据。
- `sizeof(num)` 用于获取整数 num 占用的字节数。
- `ofs.write()` 函数将数据写入到文件中。
- `ofs.close()` 关闭文件流。
当然,这只是一个简单的示例,实际使用中还需要根据具体需求进行相应的修改。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.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)