首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

string 不能打印解决方法

2012-06-07 
string 不能打印C/C++ codeBreakpoint 1, CURLParser::OnData (this0xb754ec8c, strData...) at util/ur

string 不能打印

C/C++ code
Breakpoint 1, CURLParser::OnData (this=0xb754ec8c, strData=...) at util/urlparser.cpp:12831283            if( (m_strAllText.length()+strData.cbData)< 800960 ){(gdb) n1284                m_strAllText += " ";(gdb) n1285                string my(strData.pbData,strData.cbData);(gdb) p strData.pbData$1 = 0x8286233 "中心</title>\r\n\t\r\n\t<link type=\"text/css\" rel=\"stylesheet\" href=\"http://a.tbcdn.cn/tbsp/tbsp.css\">\r\n\t<link type=\"text/css\" rel=\"stylesheet\" href=\"http://rootsir.com/apps/matrixtry/c"...(gdb) n1286                m_strAllText+ my;(gdb) p my$2 = Traceback (most recent call last):  File "/usr/share/gdb/python/libstdcxx/v6/printers.py", line 469, in to_string    return self.val['_M_dataplus']['_M_p'].string (encoding, length = len)  File "/usr/lib/python2.4/encodings/utf_8.py", line 16, in decode    return codecs.utf_8_decode(input, errors, True)UnicodeDecodeError: 'utf8' codec can't decode bytes in position 23-24: unexpected end of data(gdb) l1281        else1282        {1283            if( (m_strAllText.length()+strData.cbData)< 800960 ){1284                m_strAllText += " ";1285                string my(strData.pbData,strData.cbData);1286                m_strAllText+ my;1287            }1288            if(m_vecText.size())1289            {1290                if(m_vecText.back().text=="")(gdb) 

strData.pbData是一个char*, strData.cbData 是长度 当然这中间可能会有 0 不然也不用这个长度了

string my(strData.pbData,strData.cbData); 来获取 一个 string 不能打印在这里
这是为什么呢

[解决办法]
楼主可以cout看
[解决办法]
这代码有点乱,还有你写的不能打印是什么意思?你要打印的话应该将其写在输出流中吧,还有你的my()是想做什么,我不太了解你的意图,建议你看一下百度http://hi.baidu.com/shazi129/blog/item/c3ad059b636db8b6c9eaf490.html中最后一个字符串流处理的例子,我感觉有点像。新手,多包涵,希望有用。
[解决办法]
你最好把代码全部贴出来,好找一点,我随手写了几行代码,用你一样的方式构造string,结果是可以打印的

打印出了这样的字符

_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x804b014 "abc"}}
最后的"abc" 就是我的string

[解决办法]
字符编码的问题

热点排行