I was not aware of the string constructor with length parameter, I thought that behaviour could be a possibility but since I am currently busy w/ work I was unable to check with the docs.<br><br><div class="gmail_quote">2011/3/28 Thorbjørn Lindeijer <span dir="ltr"><<a href="mailto:bjorn@lindeijer.nl">bjorn@lindeijer.nl</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">On Mon, Mar 28, 2011 at 17:32, Nuno Silva <<a href="mailto:little.coding.fox@gmail.com">little.coding.fox@gmail.com</a>> wrote:<br>

> On Mon, Mar 28, 2011 at 4:26 PM, ingmar wirths <<a href="mailto:ingmania@googlemail.com">ingmania@googlemail.com</a>><br>
> wrote:<br>
</div><div class="im">>> i'm getting a little frustrated trying to put the content of a packet<br>
>> into a string.<br>
>> What i simply want to do is something like:<br>
>><br>
>> std::string my_string (packet->data, packet->dataLength);<br>
>><br>
>> This doesn't compile however. I kind of get the idea why not, fiddled<br>
>> around a little,<br>
>> but could'nt get it working.<br>
>><br>
>> I guess someone did this before, any ideas?<br>
><br>
</div><div class="im">> First of all, be sure that the content you're getting is indeed a string.<br>
> Binary data does not go well with strings, because e.g., std::string may<br>
> find a '\0' before it reaches the end of the packet data which signifies an<br>
> end of string in C-Style strings, and thus not have all the data.<br>
<br>
</div>Actually, a std::string has no problems with storing binary data and<br>
is not necessarily null-terminated (it can contain 0 chars). The<br>
length of a std::string is stored separately. A std::string does not<br>
go looking for a 0 terminator when you pass in the length of the data<br>
in the constructor, like ingmar is doing.<br>
<br>
I think really the only problem could be that ENetPacket::data is a<br>
enet_uint8* and should be cast to a char* for the std::string<br>
constructor to accept it. So:<br>
<div class="im"><br>
std::string my_string ((char*) packet->data, packet->dataLength);<br>
<br>
</div>Should compile and work fine.<br>
<br>
Best regards,<br>
Bjørn<br>
<div><div></div><div class="h5">_______________________________________________<br>
ENet-discuss mailing list<br>
<a href="mailto:ENet-discuss@cubik.org">ENet-discuss@cubik.org</a><br>
<a href="http://lists.cubik.org/mailman/listinfo/enet-discuss" target="_blank">http://lists.cubik.org/mailman/listinfo/enet-discuss</a><br>
</div></div></blockquote></div><br>