在C ++中将二进制字符串输出到二进制文件

时间:2015-11-01 00:15:46

标签: c++ binaryfiles binary-data

让我们说我有一个包含像这样的二进制文件的字符串" 0110110101011110110010010000010"。有没有一种简单的方法将该字符串输出到二进制文件中,以便该文件包含0110110101011110110010010000010?我知道计算机一次写入一个字节,但我遇到了将字符串内容作为二进制文件写入二进制文件的方法。

3 个答案:

答案 0 :(得分:4)

使用bitset:

//Added extra leading zero to make 32-bit.
std::bitset<32> b("00110110101011110110010010000010");

auto ull = b.to_ullong();

std::ofstream f;
f.open("test_file.dat", std::ios_base::out | std::ios_base::binary);
f.write(reinterpret_cast<char*>(&ull), sizeof(ull));
f.close();

答案 1 :(得分:0)

我不确定这是否是你需要的,但是你去了:

#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main() {
    string tmp = "0110110101011110110010010000010";
    ofstream out;
    out.open("file.txt");
    out << tmp;
    out.close();

}

答案 2 :(得分:0)

确保输出流处于二进制模式。这处理字符串大小不是字节中位数的倍数的情况。额外位设置为0.

leaflet-map