[问题] 将字符储存到阵列 不是存到档案

楼主: hardware (哈味)   2015-06-01 17:27:16
开发平台(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
储存到 阵列变量放著 或其他方式等
不晓得要怎么做呢?
谢谢
作者: anyoiuo   2015-06-01 17:30:00
memcpy(dst, src, length)?
楼主: hardware (哈味)   2015-06-01 19:32:00
好像不行 ,不知道是不是我不太会用
作者: LPH66 (-6.2598534e+18f)   2015-06-01 19:43:00
问: 你存起来之后下次是什么状况要怎么用?
楼主: hardware (哈味)   2015-06-01 20:21:00
我想把它存到std::list string里面 ,之后用其他变量排序后,存到TXThttp://imgur.com/edit上面那个错了 http://imgur.com/kuPBltq为什么第一个复制比较长 后面会出现乱码压?
作者: azureblaze (AzureBlaze)   2015-06-01 21:08:00
提示:s的长度是11
楼主: hardware (哈味)   2015-06-01 21:16:00
那为什么复制 6 个的不会有乱码?
作者: azureblaze (AzureBlaze)   2015-06-01 21:17:00
字串看到0会自己结束你的s最后面有偷偷藏一个0用来标示结尾t本来里头是乱七八糟的东西所以你没把结尾复制进去他就乱印到碰巧有0为止
楼主: hardware (哈味)   2015-06-01 21:31:00
原来如此,那如何保证只copy 9位元呢?还是说cout的时候,会多印而以,实际上是存 9位元
作者: azureblaze (AzureBlaze)   2015-06-01 21:43:00
cout printf等处理字串的方法而已,不印就没问题另外你要的是“位元”还是“字节”
作者: anyoiuo   2015-06-01 22:13:00
既然你是资料是字符阵列(字串),那可以使用strncpy处理即可
楼主: hardware (哈味)   2015-06-01 22:54:00
我是要处理位元,了解,我再试试看,感谢~
作者: anyoiuo   2015-06-01 23:04:00
如果单存想存"位元",那建议不要以char字符来存放可能需要更仔细的说明你想拿来做什么目的会更好好给建议类似unsigned data[N] // 需要N byte储存搭配透过Shift:<< >>; And/Or:& |; Not:~x逻辑运算来实作

Links booklink

Contact Us: admin [ a t ] ucptt.com