나는 게임을 만들고 있는데, 프로그램이 사용자가 온라인 상태임을 자동으로 방송합니다. 브로드 캐스트 메시지는 다음과 같이 구성됩니다.
1 바이트 : 0에서 6까지의 값
2-5. 바이트 :는 RGBA 색상
6 -... 바이트 : 사용자 이름
C++ 문자 배열 연결
사용자 이름이 std::string username
에 저장되는 동안 제 5 바이트는, char buf_begin
에 저장된다.
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()'은 여기서 작동하지 않습니다. –