從標準輸入stdin讀取二進位制資料

2021-08-23 14:01:58 字數 410 閱讀 5628

c/c++提供的標準輸入stdin預設是以"r"模式開啟的,在linux下由於"r"和"rb"效果相同,因此不會受到影響。在windows下,"r"意味著文字模式,\r\n會被轉換成\n,而且遇到eof就會停止。

因此為了從標準輸入讀取二進位制資料,需要向程式中新增以下**:

#include #include int main()

{ _setmode(_fileno(stdin), _o_binary);

這段**使用了fcntl.h中的_setmode函式將stdin模式設定為二進位制模式。

另外據說還有一種 freopen(null,"rb",stdin) 的寫法,但根據我的測試並沒有效果,不推薦使用。

需要注意的是,一旦設定成了二進位制模式,換行符的自動轉換將不會被進行。

AWK 怎麼讀取標準輸入(STDIN)

在 awk 系列中,我們將會看到幾個例子,你可以篩選其他命令的輸出代替從乙個檔案讀取輸入作為 awk 的輸入。我們首先從使用 dir 命令開始,它類似於 ls 命令。在第乙個例子下面,我們使用 dir l 命令的輸出作為 awk 命令的輸入,這樣就可以列印出檔案擁有者的使用者名稱,所屬組組名以及在當...

php讀取二進位制 php讀取二進位製流

將php資料轉換為二進位制資料 string pack string format mixed args mixed 將二進位制資料轉換為php資料 array unpack string format,string data format a nul padded string a nul 字串填...

c c讀取二進位制檔案

因專案需要讀取二進位制檔案,一開始用c 讀取,c 下用的是ifstream類,完整 如下 ifstream in b3dmpath.c str ios in ios binary in.seekg 0,ios end size t filesize in.tellg in.seekg ios beg...