我有一个文本文件,其中包含范围为0,..,2^32-1的无符号整数。 每行包含一个整数(和一个换行符char)。读取包含无符号整数的文件并将其写入C++中的二进制文件
我想写入一个二进制文件来节省空间(这样每个int将占用4个字节)。什么是最好的方式来做到这一点?
我试了几个选项,他们都没有似乎工作。帮助将不胜感激。
电流(非工作)代码: g++ compress.cc -o compress
:
#include <fstream>
#include <iostream>
#include <stdio.h>
int main(){
int x;
while (std::cin >> x){
fwrite((void*)&x, sizeof(x), 1, stdout);
}
return 0;
}
它使用编译。
但是,它似乎只输出第一个整数。
例如,具有我跑的命令./compress < bla | wc -c
其中“BLA”是含有
1864754174
2150244390
1703231727
该命令的结果是一个4
文件,而不是作为12
我的预期。
您尝试了什么?现在,这个问题只是给我的代码。几乎立即就会下调和关闭。请记住编辑你的问题,不要在评论部分回答这个问题。 –
@Ben - 增加了代码,感谢您的评论。 –
好吧,现在什么不行?请阅读如何创建[MCVE](http://stackoverflow.com/help/mcve) –