私はC ++にかなり慣れていないので、単独で検索しても解決策が見つからないという問題に遭遇しました。
問題は、以下のループ内で istringstream の値が変更されないのはなぜですか?
dirs[ 0 ] と dirs[ 1 ] から値を取得し、それらを増加する int i に変更することはありません。ところで。dirs[ i ] と dirs [ i + 1 ] の値は 16 進数値として格納されます (例: 0F9C8924)。
以下は私の最新のセットアップです。他の方法をいくつか試しましたが、成功しませんでした。たとえば、ループ内に istringstream を持ち、ios_base::trunc などを使用しています。
またdirs[ i ]
、DO には異なる値があり、正しく読み取られますが、istringstream を介して文字列 hex を unsigned int にしようとすると、新しい値が取得されません。
unsigned int f;
unsigned int t;
istringstream ss;
istringstream ss2;
for( int i = 0; i < count; i+=3 ) {
ss.clear();
ss2.clear();
ss.str( dirs[ i ] );
ss2.str( dirs[ i + 1 ] );
ss >> f;
ss2 >> t;
// do something else with dirs[ i + 3 ], not relevant
}
count
とdirs
はグローバル変数でありcount
、別の関数で増加します。その値のカウントは ですdirs
。
これが以前に尋ねられた場合は申し訳ありませんが、私が見つけた解決策はうまくいきませんでした。ss.clear()
またはなどwhile( ss >> f )
提供されたヘルプに事前に感謝します。