2017-09-06 27 views
0

skipws的頭,原型:std::ios_base& skipws(**std::ios_base& str**);(從Skipws/Noskipws)什麼是我把標誌之間星號的一部分,確保格式標誌skipws不能用作功能。那它是什麼?平凡澄清關於skipws聲明

enter image description here

+1

um,'skipws'是一個函數。函數的'()'之間的東西被稱爲函數的參數。不確定混淆是什麼。 – NathanOliver

+0

@NathanOliver但編譯器說它不能用作函數。 – Gaurav

+2

你使用的代碼是什麼會產生這個錯誤? [作品在這裏很好](http://coliru.stacked-crooked.com/a/3f1ddd2846a57641) – NathanOliver

回答

2

skipws是一個函數,但你通常不直接調用它。相反,你把它傳遞到流:

std::cin >> std::noskipws >> foo; 
std::cin >> std::skipws >> bar; 

的流具有operator>>特殊的重載,需要正確的類型(函數指針...)並調用它代表你流。

+0

嗨,你能解釋一下這個部分嗎?「它採用正確的類型(指向函數的指針...)並代表你在流上調用它。」 – Gaurav

+0

@Gaurav:https://stackoverflow.com/a/17479947/179910顯示我在說什麼。 –