我有一个unsigned long long变量,我想写入二进制文件。但是,我需要忽略所有零的前导字节 这意味着
unsigned long long toWrite = 4;
应该向流写入0x04而不是0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04。
#include <fstream>
int main(){
std::ofstream out("test.txt", std::ios::binary);
unsigned long long toWrite = 4;
out << cutoffZeroBytes(toWrite);
out.close();
return 1;
}
我正在考虑将cutoffZeroBytes
作为返回char*
的函数。但如果中间有零个字节(例如0x03 0x00 0xf1),那么我认为我无法将其写入流,因为0x00确定char
数组的结束。
我在这里有点笨拙,需要一些帮助。
答案 0 :(得分:1)
一种方法是使用write来达到这个目的。 所以,只需改变:
jaxrpc.jar
saaj.jar
commons-discovery.jar
commons-logging.jar
wsdl4j.jar or orawsdl.jar
xercesImpl.jar
mail.jar
activation.jar
为:
out << cutoffZeroBytes(toWrite);
如果你想减少这个数字:
out.write((char*)&toWrite, sizeof(toWrite));