2016-08-12 2 views
0

整数フィールドを読み込むには影響しません私はこのようなコードを書いた:setwは()

int d{ 0 }; 
cin >> setw(2) >> d; 

をしかし、setw()が読んで、整数には影響しませんようです。その場合、%2dの動作をscanf()istreamとどのように実装できますか?

+0

悪い考えは悪い質問ではありません。 UVを照射する。これはよく描かれたIMHOです。 – Bathsheba

+0

多分あなたは行を読んで、それを切り捨てるべきです –

+0

@Bathshebaなぜそれは悪い考えですか?私は16進文字列(UUIDと考える)をバイト配列に変換したい。私は 'sscanf()によってこれを行うことができますが、** ** stl **が入力ストリームでそれをサポートするかどうかを知りたいですか? –

答えて

1

setw()は、ではありません。は一体型で使用するように設計されています。

どうすればよいですか?整数の最後の2つの10進数を抽出しますか?ストリームにstd::hexを入れた場合、どうなりますか?

最高の方法は、番号を読んでそれを自分で処理することです。たとえば、最下位2桁を抽出する場合は、その後にd % 100を使用します。負の数に対して余分な補正を行います。

+0

ええと、最初の2桁を読んで残りをストリームに残していると解釈しました。 – aschepler

+0

それは基本的に問題です。あまりにもあいまいです。 – Bathsheba

+0

@ascheplerあなたは書いてあります。それはまさに私がやりたいことです。 –

関連する問題