我有一個文本文件,其中包含範圍爲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) –