[問題] 擷取binary字串

看板C_and_CPP (C/C++)作者 (Infinite)時間12年前 (2014/05/06 15:57), 編輯推噓7(7014)
留言21則, 6人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev C++ 5.6.2 問題(Question): 讀取一個binary.txt的檔進來 分別存入變數中 假如我現在要處理第一行binary 00100001000010100000000010111110 我想把它分為 前六個bit 001000 再來五個 01000 再來五個 01010 再來五個 00000 再來五個 00010 最後六個 111110 分別這六個字串存到分別不同的變數 因為對指標不太熟 所以不知如何下手... 餵入的資料(Input): 00100001000010100000000010111110 10101101010100010000000000000100 10001101010100100000000000000100 00001000000000000000001001010110 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/aPcehjJr -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.81.115 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1399363047.A.E9C.html

05/06 16:02, , 1F
你跟if也不太熟
05/06 16:02, 1F

05/06 20:06, , 2F
用bitset
05/06 20:06, 2F

05/06 20:13, , 3F
樓上應該跳太快了...
05/06 20:13, 3F

05/07 16:51, , 4F
strncpy()一下就完成的事用bitset會不會太爆笑
05/07 16:51, 4F

05/07 16:57, , 5F
strncpy的確是一個不錯的解法沒錯,不過換我的話
05/07 16:57, 5F

05/07 16:58, , 6F
既然有開檔的動作 那用ifstream::read來作讀取n個位元
05/07 16:58, 6F

05/07 16:59, , 7F
的動作我會覺得是個比較合適的作法。當然,mmap是最標準
05/07 16:59, 7F

05/07 16:59, , 8F
的geek寫法了... :D
05/07 16:59, 8F

05/07 17:00, , 9F
當然,要怎麼處理n個bit char會是幾個bit 該怎麼補0
05/07 17:00, 9F

05/07 17:00, , 10F
我想才是這提的醍醐味(不過這種題目叫做喇賽題)
05/07 17:00, 10F

05/07 18:00, , 11F
有ifstream當然更好…
05/07 18:00, 11F

05/08 03:09, , 12F
大部份應該是用mask最快
05/08 03:09, 12F

05/08 10:05, , 13F
看要存成字串還是整數,不同做法
05/08 10:05, 13F

05/08 14:38, , 14F
以他的輸入而言,作字串處理較單純。
05/08 14:38, 14F

05/08 14:42, , 15F
這提應該是某提ACM的簡化版
05/08 14:42, 15F

05/08 14:43, , 16F
該ACM原始題目是binary, ascii範圍是0-255
05/08 14:43, 16F

05/08 14:43, , 17F
讀進來要parse成unsigned char然後用bit mask去取值
05/08 14:43, 17F

05/08 14:44, , 18F
算是數一數二的喇賽題 所以我還滿有印象的...
05/08 14:44, 18F

05/08 16:45, , 19F
ASCII 只有 7-bit, EASCII 才是 8-bit .
05/08 16:45, 19F

05/08 17:24, , 20F
欸這樣講也對 o_O 我忘記題目編號了 之前一直不過不
05/08 17:24, 20F

05/08 17:24, , 21F
知道是不是因為這個原因... xd
05/08 17:24, 21F
文章代碼(AID): #1JQ9NdwS (C_and_CPP)
文章代碼(AID): #1JQ9NdwS (C_and_CPP)