我正在製作一個遊戲,程序自動廣播用戶在線。廣播消息將由以下組成:
1.字節:0到6的值
2-5。字節:一個RGBA顏色
6 -...字節:用戶的名字
C++連接字符數組
的前5個字節被存儲在char buf_begin
,而用戶名存儲在std::string username
。
我嘗試這樣做:
std::string buf_begin_s(buf_begin);
std::string buf = buf_begin_s + username;
sendto(udp_br, buf.c_str(), sizeof(buf.c_str()), 0, (sockaddr *)&to, sizeof(to));
的問題是,buf
字符串不包含1-5。字節,只有用戶名。
不,不是'sizeof(指針)'。試試'strlen'或'buf.length()'。 – LogicStuff
由於'buf'可能包含''\ 0'','strlen()'在這裏不起作用。 –