怎么把字符数组的内容转换到CString中?
BYTE tempbuf[128];
memset(tempbuf, 0, 128);
CString strEncrypt;
Read = OutputFile.Read(tempbuf, 128);
strEncrypt = tempbuf;
为什么strEncrypt里面只有开头的几个字符?
tempbuf里面有128个字符的, 但是其中可能夹杂着"\0"符号, 于是strEncrypt就中断了?
我想把所有128个字符都付值给一个字符串, 该怎么办呢?
谢谢
问题点数:0、回复次数:7Top
1 楼steedhorse(晨星)回复于 2005-04-04 20:14:51 得分 0
不方便的,一个CString只允许有一个字符串结束符。Top
2 楼steedhorse(晨星)回复于 2005-04-04 20:15:20 得分 0
你的文件是不是并非文本文件啊?
那样的话,你要转换的,按照你的意图。Top
3 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-04-04 21:43:41 得分 0
CStirng以\0结束了Top
4 楼xuzheng318(忧郁王子)回复于 2005-04-04 21:44:58 得分 0
字符串结束符Top
5 楼favors(favors)回复于 2005-04-04 22:17:47 得分 0
CString str;
str.format("%s",tempbuf);Top
6 楼kugou123(酷狗)(彪悍的人生,不需要解释 www.xiaozhou.net)回复于 2005-04-04 22:55:04 得分 0
str.Format("%s",buff);Top
7 楼xqk(夏乾坤)回复于 2005-04-05 08:17:14 得分 0
有办法其实,虽然字符串实际上内容齐全,但是你对字符串的操作就类似数组了,因为字符串中间的\0标识着字符串已经结束了,所以这样做简直一点用处都没有,除非先把buff里的\0全换成某一符号代替
BYTE tempbuf[128];
memset(tempbuf, 0, 128);
CString strEncrypt;
Read = OutputFile.Read(tempbuf, 128);
strEncrypt = tempbuf;
memcpy(strEncrypt.GetBuffer(strEncrypt.GetLength()),tempbuf,128); //例1
for(int i=0;i<128;i++)
{
if('\0' == tempbuf[i] || 0x00 == tempbuf[i])tempbuf[i] = ' ' //例2,以空格取代,然后算法自己研究吧先,呵呵
}
Top




