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