protokol arabelleği contain any arbitrary sequence of bytes olabilir. ancak verilerim '\ 0' içeriyorsa, protokol arabelleğim tüm verileri bir dize değişkeninden nasıl kodlayabilir.protokol arabellek baytları neden C++ 'da dize?
13
A
cevap
12
protokol tamponların C++ uygulaması std::string
olarak bayt ve dizi türlerini döndürür. Bu yapı ilgili veri ne kadar süre belirten bir uzunluk işlevini içeren (yanı sıra verilerin kendilerini.) Böylece gömülmüş \0
karakterlerin özel önemi yoktur.
ayar fonksiyonları
de bir dize kabul etmek veya bir tampon ve uzunluk kabul versiyonları vardır. size sadece bunu olabilen bir alanı ayarlamak istiyorsanız:pb.set_foo(std::string(data, data_length));
veya
pb.set_foo(data, data_length);
+0
Ayrıca bkz https://stackoverflow.com/questions/2845769/can-a-stdstring-contain-embedded-nulls – Raedwald
İlgili konular
- 1. Baytları indekslediğimde neden int alırım?
- 2. StreamReader ve arabellek C#
- 3. Python (json): TypeError: beklenen dize veya arabellek
- 4. Kivy (Python) TypeError: beklenen dize veya arabellek
- 5. protokol uzantısı, protokol
- 6. Bu arabellek neden düzenlenemez baytlara işaret ediyor?
- 7. Integers'e verimli paketleme baytları?
- 8. WebRequest GetResponseStream okuma baytları
- 9. sizeof boş yapısı C cinsinden 0 ve C++ da neden?
- 10. C++'da işaretçilerden bool'e neden dolaylı bir tür dönüşüm var?
- 11. Raspbian'da SPI arabellek boyutunu artırın
- 12. Opengl sahnesinde neden derinlik arabellek sorunları var?
- 13. C++ 'da değişken adı olarak bir dize nasıl kullanılır?
- 14. Bir char * arabellek bir WinRT IBuffer'ında C++
- 15. Nasıl nodejs writeDoubleBE arabellek C# çift dönüştürebilirsiniz?
- 16. NSMutableData baytları nasıl kaldırır?
- 17. NSData baytları üzerinden yineleme
- 18. Python e-posta gönderme TypeError: Beklenen dize veya arabellek
- 19. C#
- 20. C++ 'da Overloading Operator +
- 21. dize, C#
- 22. Protokol simülasyonu araçları
- 23. Android için protokol arabelleği oluşturma NDK
- 24. Neden relu6'da 6?
- 25. Ham baytları ham bayt olarak al R
- 26. Protokol türündeki üyelere erişim Swift
- 27. Bölünmüş dize C# (çeşit)
- 28. Windows 8 C# - dize
- 29. C dizgisinde C neden kullanılır?
- 30. C# dize işleme sorunu
siz "değişken bir dize" ile ne demek istiyorsunuz? Bu bir char * 'mı? C, Java mı yoksa başka bir şey mi? –
@Marcelo ben * Artık, ama \ 0' bir C++ dizede özel bir anlamı yoktur 'bir izlenimi ++ kişinin bir c değilim –
... O' demektir '' dan string' tahmin ediyorum * ** '0 specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically specifically you you you you you you you you you you you you you you you you you you you you you you you you '' '' '' '' ' Yani ... bu yöntemleri kullanmıyor musun? –