C++ 将8位的位集写入文件(C+;+;)

C++ 将8位的位集写入文件(C+;+;),c++,byte,bitset,C++,Byte,Bitset,我有一个8位的位集 如何将这8位转换为一个字节,然后写入文件 我找遍了所有地方,却发现了另一条路 非常感谢 它们还可以以二进制格式从流中直接插入和提取 您不需要转换任何内容,只需将它们写入输出流即可 除此之外,如果您真的想将它们提取到您习惯的内容中,则会提供to_ulong和to_string方法 如果集合中的位多于无符号long所能容纳的位,并且不想将它们直接写入流,那么您要么必须转换为字符串并按该路径执行,要么使用[]运算符访问每个位,并将它们转换为您正在写入的字节。 它们还可以以二进制格

我有一个8位的位集

如何将这8位转换为一个字节,然后写入文件

我找遍了所有地方,却发现了另一条路

非常感谢

它们还可以以二进制格式从流中直接插入和提取

您不需要转换任何内容,只需将它们写入输出流即可

除此之外,如果您真的想将它们提取到您习惯的内容中,则会提供
to_ulong
to_string
方法

如果集合中的位多于无符号long所能容纳的位,并且不想将它们直接写入流,那么您要么必须转换为字符串并按该路径执行,要么使用
[]
运算符访问每个位,并将它们转换为您正在写入的字节。

它们还可以以二进制格式从流中直接插入和提取

您不需要转换任何内容,只需将它们写入输出流即可

除此之外,如果您真的想将它们提取到您习惯的内容中,则会提供
to_ulong
to_string
方法


如果集合中的位多于无符号long所能容纳的位,并且不想将它们直接写到流中,那么您要么必须转换为字符串并按该路径进行,要么使用
[]< /Cord>运算符,将它们转换成你正在编写的字节。

< P>假设你在谈论C++ STL位集,答案是把BITSUT转换成int(ULUN是精确的),并将结果转换成字符。p> 例如:

#include <bitset>
#include <iostream>
using namespace std;
main()
{
   bitset<8> x;
   char byte;

   cout << "Enter a 8-bit bitset in binary: " << flush;
   cin >> x;
   cout << "x =       " << x << endl;
   byte = (char) x.to_ulong();
   cout << "As byte:  " << (int) byte << endl;
}
#包括
#包括
使用名称空间std;
main()
{
位集x;
字符字节;
cout x;

假设你正在谈论C++ STL位集,答案是把比特集转换成int(ULUN是精确的),并将结果转换成字符。 例如:

#include <bitset>
#include <iostream>
using namespace std;
main()
{
   bitset<8> x;
   char byte;

   cout << "Enter a 8-bit bitset in binary: " << flush;
   cin >> x;
   cout << "x =       " << x << endl;
   byte = (char) x.to_ulong();
   cout << "As byte:  " << (int) byte << endl;
}
#包括
#包括
使用名称空间std;
main()
{
位集x;
字符字节;
cout x;

您可以使用
fstream std::ofstream

#include <fstream>
std::ofstream os("myfile.txt", std::ofstream::binary);
os << static_cast<uint_fast8_t>(bitset<8>("01101001").to_ulong());
os.close();
#包括
std::ofstream操作系统(“myfile.txt”,std::ofstream::binary);

os您可以使用
fstream std::ofstream

#include <fstream>
std::ofstream os("myfile.txt", std::ofstream::binary);
os << static_cast<uint_fast8_t>(bitset<8>("01101001").to_ulong());
os.close();
#包括
std::ofstream操作系统(“myfile.txt”,std::ofstream::binary);

os什么是
位集
?它在哪里定义?将
位集
转换为
地板
,并调用
jifiddle()
FileGizmo
对象上的成员函数。您指的是这个吗?什么是
BitSet
?它定义在哪里?将
BitSet
转换为
floobalar
并调用
FileGizmo
对象上的
jifiddle()
成员函数。您指的是这个吗?如果我“只需将它们写入输出流”正如您所说,输出流包含一系列“0”和“1”字符。当文档说“以二进制格式从流中插入和提取”时,我希望将8位的组写入字节。例如,[代码]位集F(“01000110”);流fs(“test.txt”);如果I只需将它们写入输出流”正如您所说,输出流包含一系列“0”和“1”字符。当文档说“以二进制格式从流中插入和提取”时,我希望将8位的组写入字节。例如[code]位集F(“01000110”);流fs(“test.txt”);fs