Próbowałem utworzyć pętlę for, która będzie iterować w oparciu o długość pakietu sieciowego. W interfejsie API istnieje zmienna (size_t) według właściwości event.packet-> dataLength. Chcę iterować od 0 do event.packet-> dataLength - 7 zwiększanie i o 10 przy każdym iteracji, ale mam świat kłopotów.Konwertowanie size_t na liczbę całkowitą (C++)
Szukałem rozwiązań, ale nie mogłem znaleźć niczego przydatnego. Próbowałem przekonwertować size_t na unsigned int i zrobić arytmetykę z tym, ale niestety to nie zadziałało. W zasadzie wszystko czego chcę to:
for (int i = 0; i < event.packet->dataLength - 7; i+=10) { }
Choć za każdym razem zrobić coś takiego lub próbę moich konwersji I < # jest to ogromna liczba. Wydali instrukcję printf w samouczku dla interfejsu API, który użył "% u" do wydrukowania rzeczywistej liczby, jednak kiedy przekonwertowałem ją na niepodpisaną int, nadal jest ona niepoprawna. Nie jestem pewien, dokąd się udać. Każda pomoc będzie bardzo mile widziane :)
Pomyśl o tym: Jaka jest wartość 'static_cast (- 1)'? Co się dzieje, gdy 'event.packet-> dataLength' jest mniejsze niż 7? –
genpfault
Dlaczego 'i' nie może być także' size_t'? Ponadto, chyba że długość jest zawsze równa 7 mod 10, jest to bardzo osobliwa pętla, którą należy wykonać. – OrangeDog
Czy próbowałeś rzucić 'event.packet-> dataLength' na' int'? – Dawson