[問題] 將字元儲存到陣列 不是存到檔案

看板C_and_CPP作者 (硬體)時間9年前 (2015/06/01 17:27), 編輯推噓2(2023)
留言25則, 4人參與, 最新討論串1/1
開發平台(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

06/01 17:30, , 1F
memcpy(dst, src, length)?
06/01 17:30, 1F

06/01 19:32, , 2F
好像不行 ,不知道是不是我不太會用
06/01 19:32, 2F

06/01 19:43, , 3F
問: 你存起來之後下次是什麼狀況要怎麼用?
06/01 19:43, 3F

06/01 20:21, , 4F
我想把它存到std::list string裡面 ,之後用其他變數
06/01 20:21, 4F

06/01 20:22, , 5F
排序後,存到TXT
06/01 20:22, 5F

06/01 21:06, , 6F
06/01 21:06, 6F

06/01 21:06, , 7F
上面那個錯了 http://imgur.com/kuPBltq
06/01 21:06, 7F

06/01 21:08, , 8F
為什麼第一個複製比較長 後面會出現亂碼壓?
06/01 21:08, 8F

06/01 21:08, , 9F
提示:s的長度是11
06/01 21:08, 9F

06/01 21:16, , 10F
那為什麼複製 6 個的不會有亂碼?
06/01 21:16, 10F

06/01 21:17, , 11F
字串看到0會自己結束
06/01 21:17, 11F

06/01 21:19, , 12F
你的s最後面有偷偷藏一個0用來標示結尾
06/01 21:19, 12F

06/01 21:19, , 13F
t本來裡頭是亂七八糟的東西
06/01 21:19, 13F

06/01 21:20, , 14F
所以你沒把結尾複製進去他就亂印到碰巧有0為止
06/01 21:20, 14F

06/01 21:31, , 15F
原來如此,那如何保證只copy 9位元呢?
06/01 21:31, 15F

06/01 21:32, , 16F
還是說cout的時候,會多印而以,實際上是存 9位元
06/01 21:32, 16F

06/01 21:43, , 17F
cout printf等處理字串的方法而已,不印就沒問題
06/01 21:43, 17F

06/01 21:43, , 18F
另外你要的是「位元」還是「位元組」
06/01 21:43, 18F

06/01 22:13, , 19F
既然你是資料是字元陣列(字串),那可以使用strncpy處理即
06/01 22:13, 19F

06/01 22:14, , 20F
06/01 22:14, 20F

06/01 22:54, , 21F
我是要處理位元,了解,我再試試看,感謝~
06/01 22:54, 21F

06/01 23:04, , 22F
如果單存想存"位元",那建議不要以char字元來存放
06/01 23:04, 22F

06/01 23:06, , 23F
可能需要更仔細的說明你想拿來做什麼目的會更好好給建議
06/01 23:06, 23F

06/02 00:07, , 24F
類似unsigned data[N] // 需要N byte儲存
06/02 00:07, 24F

06/02 00:09, , 25F
搭配透過Shift:<< >>; And/Or:& |; Not:~x邏輯運算來實作
06/02 00:09, 25F
文章代碼(AID): #1LR2Ls0g (C_and_CPP)