作者:
OfficeGL (努力上班族)
2019-09-25 16:46:01VS 2017
struct XXX{
string name[10];
};
string list = {"A1", "A2", ......};
void func(){
struct XXX p;
for loop to fill p.name[i] for i = 0 to 10-1
call send(p);
}
void send(struct XXX &p){
string str = "";
str.append("{")
for(int i = 0; i < len; i++){
str.append(list[i]);
str.append(":");
str.append(p.name[i]); // line HIGHLINE
str.append(","); // 執行到這行, 結果沒有被成功 append
}
str.back();
str.append("}");
loop 跑完
結果還是只有 {A1:TaipeiMainStartion
完全看不出來問題的方向
line HIGHLIN 將這行改成 str.append("55555");
反而整個字串就成功了
若我改成用 operator + 一樣的結果 QQQQQQQ
有高手前輩幫幫忙嗎~~
感謝唷
作者:
idiont (supertroller)
2019-09-25 17:27:00你沒附上完整程式碼有點難通靈你迴圈的len是什麼東西p的內容又是什麼
. VS ->宣告 void send(struct XXX *p) 就用 p->name[i]宣告 void send(struct XXX p) 就用 p.name[i]
作者:
ko27tye (好滋好滋)
2019-09-25 18:01:00highline那行改了後會變成{A1:55555,A2:55555, ...}是嗎不改就只有{A1:TaipeiMainStartion 然後跳出迴圈?
作者:
steve8625 (HaHaHa(TW))
2019-09-25 18:13:00照你描述只剩懷疑塞給p.name的code有問題, 方便貼嗎
作者:
ko27tye (好滋好滋)
2019-09-25 18:15:00我猜可能是struct的name陣列沒初始化讀到怪東西 先用memset初始化 或直接用vector儲存字串
作者:
idiont (supertroller)
2019-09-25 18:53:00覺得是你的buffer或p.name沒處理好
作者: ctrlbreak 2019-09-25 22:11:00
你用bind去call的嗎
作者:
Gway (我愛的你 也愛我 好嗎?)
2019-09-26 06:24:00string list = {"A1", "A2", ......}; 改成string list[] ={"A1", "A2", ......};
作者: yvb 2019-10-05 10:20:00