想要把一個char陣列的內容賦給一個字串變數,如果這樣寫
char Real[128] = "F2F10B000001F3";
string sfvalue = RealData;
就會出現這個問題:[原始視圖] = {_Myval2={_Bx={_Buf=0x0582fb60 "蝰\v" _Ptr=0x000bf1f2 <讀取字串的字符時出錯。> _Alias=0x0582fb60 "蝰\v" } _Mysize=...} },也就是在賦值的程序中遇到00,就讀取出錯,最后得到的結果就是sfvalue只獲取到了“F2F10B”,后面的都沒有了,是因為00代表結束符嗎,那要把完整的陣列內容給傳過去應該怎么解決00這個問題呢?求各位大神解答
uj5u.com熱心網友回復:
就你的陳述句而言只有一個錯誤char Real[128] = "F2F10B000001F3";
string sfvalue = RealData;//是RealData,而不是Real
uj5u.com熱心網友回復:
不好意思,上面那個是寫錯了,是要把Real賦給字串的,問題是字串的'\0'表示結束,沒辦法賦過去,這個您有解決辦法嗎?
char Real[128] = "F2F10B000001F3";
string sfvalue = Real;
uj5u.com熱心網友回復:
復制了代碼 沒有出現這個問題。。uj5u.com熱心網友回復:
你想多了,你的字串里面的0統統都是字符0,碼值0x30那個東東,不會誤解。你的代碼里疑似其他地方越界操作之類的造成你說的后果。
uj5u.com熱心網友回復:
char Real[128] = "F2F10B000001F3";string sfvalue (Real,Real+len);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/268199.html
標籤:C++ 語言
上一篇:英文本檔案的處理(小白求助)
下一篇:求解答
