2016-08-12 32 views
0

我寫了這樣的代碼:運輸及工務局局長()不影響閱讀整場

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

但似乎setw()對閱讀整數沒有影響。如果是這樣,我們如何實現%2dscanf()istream的行爲?

+0

一個壞主意並不意味着一個壞問題。 UV'd。這是很好的恕我直言。 – Bathsheba

+0

也許你應該讀一行,並截斷它 –

+0

@Bathsheba爲什麼這是一個壞主意?我想將一個十六進制字符串(認爲UUID)轉換爲字節數組。我可以通過'sscanf()'做到這一點,但我想知道** stl **是否支持在輸入流中執行此操作? –

回答

1

setw()不是設計與積分類型一起使用。

它會做什麼?提取整數的最後兩位十進制數字?如果您將std::hex放入流中,會發生什麼情況?

最好的方法是讀取數字,然後自己處理它。例如,如果要提取最低有效位數,請使用d % 100;對負數進行額外修正。

+0

嗯,我將這個意圖解釋爲讀取前兩位數字,並將剩餘的數字留在流中。 – aschepler

+0

這基本上是個問題:它太模棱兩可了。 – Bathsheba

+0

@aschepler你寫了。這正是我想要做的。 –

相關問題