私は、ネットワークパケットの長さに基づいて反復するforループを作成しようとしています。 APIには、event.packet-> dataLengthによって変数(size_t)が存在します。私は0からevent.packet-> dataLength - 7 iterates iteratesするたびに私は10増加する反復したいが、私は問題の世界を抱えています。size_tを整数に変換する(C++)
私は解決策を探しましたが、有用なものは何も見つかりませんでした。 size_tをunsigned intに変換しようとしましたが、それを使って算術演算を行っていましたが、残念ながらそれは機能しませんでした。基本的に私が望むすべてはこれです:
for (int i = 0; i < event.packet->dataLength - 7; i+=10) { }
私は私の変換時にこのまたは試みのような何かをするたびに私<#部分は、膨大な数ですが。彼らは実際の数値を出力するために "%u"を使ったAPIのチュートリアルでprintfステートメントを与えましたが、まだunsigned intに変換してもそれは間違っています。私はここからどこに行くべきか分からない。どのような助けが大いに評価されるでしょう:)
考えてみましょう: 'static_cast( - 1)'の値は何ですか? 'event.packet-> dataLength'が7より小さいとどうなりますか? –
genpfault
なぜ 'i'も' size_t'できないのですか?また、長さが常に7 mod 10に等しくなければ、これは試行する非常に特殊なループです。 – OrangeDog
'event.packet-> dataLength'を' int'にキャストしようとしましたか? – Dawson