看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) G++ Linux written_bytes=write(fd,payloadIndex,payloadLength); if(written_bytes<=0) { printf("write error\n"); return 0; } payloadIndex = payloadIndex + written_bytes; 這個方法是將資料儲存到 fd這個檔案 payloadIndex是指標 從這個記憶體位址開始往後儲存 payloadLength 長度 比如 ↓ 010001001100001110000111 今天我想把這串 0 或 1 儲存到 陣列變數放著 或其他方式等 不曉得要怎麼做呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.117.164.19 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1433150838.A.02A.html
anyoiuo: memcpy(dst, src, length)? 06/01 17:30
hardware: 好像不行 ,不知道是不是我不太會用 06/01 19:32
LPH66: 問: 你存起來之後下次是什麼狀況要怎麼用? 06/01 19:43
hardware: 我想把它存到std::list string裡面 ,之後用其他變數 06/01 20:21
hardware: 排序後,存到TXT 06/01 20:22
hardware: http://imgur.com/edit 06/01 21:06
hardware: 上面那個錯了 http://imgur.com/kuPBltq 06/01 21:06
hardware: 為什麼第一個複製比較長 後面會出現亂碼壓? 06/01 21:08
azureblaze: 提示:s的長度是11 06/01 21:08
hardware: 那為什麼複製 6 個的不會有亂碼? 06/01 21:16
azureblaze: 字串看到0會自己結束 06/01 21:17
azureblaze: 你的s最後面有偷偷藏一個0用來標示結尾 06/01 21:19
azureblaze: t本來裡頭是亂七八糟的東西 06/01 21:19
azureblaze: 所以你沒把結尾複製進去他就亂印到碰巧有0為止 06/01 21:20
hardware: 原來如此,那如何保證只copy 9位元呢? 06/01 21:31
hardware: 還是說cout的時候,會多印而以,實際上是存 9位元 06/01 21:32
azureblaze: cout printf等處理字串的方法而已,不印就沒問題 06/01 21:43
azureblaze: 另外你要的是「位元」還是「位元組」 06/01 21:43
anyoiuo: 既然你是資料是字元陣列(字串),那可以使用strncpy處理即 06/01 22:13
anyoiuo: 可 06/01 22:14
hardware: 我是要處理位元,了解,我再試試看,感謝~ 06/01 22:54
anyoiuo: 如果單存想存"位元",那建議不要以char字元來存放 06/01 23:04
anyoiuo: 可能需要更仔細的說明你想拿來做什麼目的會更好好給建議 06/01 23:06
anyoiuo: 類似unsigned data[N] // 需要N byte儲存 06/02 00:07
anyoiuo: 搭配透過Shift:<< >>; And/Or:& |; Not:~x邏輯運算來實作 06/02 00:09