1
我想用C++打開一個文件。該文件可以是任何類型。我試圖做的事情是打開存儲在內存中的文件。以二進制形式打開文件
假設它是一個1字節的文本文件並作爲10000011存儲在內存中,那麼我想使用C++以這種格式打開文件,例如它如何存儲在計算機中。
如何做?
我想用C++打開一個文件。該文件可以是任何類型。我試圖做的事情是打開存儲在內存中的文件。以二進制形式打開文件
假設它是一個1字節的文本文件並作爲10000011存儲在內存中,那麼我想使用C++以這種格式打開文件,例如它如何存儲在計算機中。
如何做?
您可以打開二進制格式文件,調用fopen函數,如:
FILE* f = fopen(filename, "rb");
現在你不能讀取位的文件位,但你必須閱讀它以字節至少字節(因爲字節是您應該使用的最小單位),例如:
unsigned char value;
fread(&value, 1, 1, sizeof(unsigned char));
將讀取文件的單個字節。然後,您可以用二進制和操作(&)訪問單個位,打印這個值作爲二進制文件(如0和1)可以這樣進行:
printf("%d%d%d%d%d%d%d%d\n",
value & 0x80 ? 1 : 0,
value & 0x40 ? 1 : 0,
value & 0x20 ? 1 : 0,
value & 0x10 ? 1 : 0,
value & 0x8 ? 1 : 0,
value & 0x4 ? 1 : 0,
value & 0x2 ? 1 : 0,
value & 0x1 ? 1 : 0);
當然這些都是C標準的功能,你也可以使用C++的,打開使用:
ifstream file (filename, ios::in|ios::binary);
對於閱讀,你可以使用:
file.read(valueAddress, sizeInBytes);
你應該知道如何打印的東西了(與COUT)。
請告訴我們你到目前爲止所以我們知道在哪裏可以幫到你。 – 2013-04-10 17:50:24
我想我明白了......等等,什麼? – 2013-04-10 17:50:30
http://www.cplusplus.com/reference/fstream/ifstream/open/ – 2013-04-10 17:53:13