此函數(shù)通過(guò)首先構(gòu)造一個(gè)類型為basic_istream::sentry的對(duì)象(noskipws 設(shè)置為 false)來(lái)訪問(wèn)輸入序列。然后(如果 sentry 對(duì)象是 true),它調(diào)用money_get::get(使用流的所選地區(qū))來(lái)執(zhí)行提取和解析操作,并相應(yīng)地調(diào)整流的內(nèi)部狀態(tài)標(biāo)志。
最后,它在返回之前銷毀 sentry 對(duì)象。
它用于從應(yīng)用程序于輸入流的字符中提取字符,并將它們解釋為貨幣表達(dá)式,存儲(chǔ)為mon的值。
以下是 std::get_money 函數(shù)的聲明。
mon ? 存儲(chǔ)貨幣值的對(duì)象,moneyT 應(yīng)該是long double或者basic_string的一個(gè)實(shí)例。
intl ? true表示國(guó)際化,否則為false。這在內(nèi)部用于實(shí)例化適當(dāng)?shù)亩嘤猛绢悺?/p>
例在下面的例子中說(shuō)明了 get_money 函數(shù)的用法。
#include <iostream>
#include <iomanip>
int main () {
long double price;
std::cout << "Please, enter the price: ";
std::cin >> std::get_money(price);
if (std::cin.fail()) std::cout << "Error reading price/n";
else std::cout << "The price entered is: " << price << '/n';
return 0;
}
編譯和運(yùn)行上面的程序,將產(chǎn)生以下結(jié)果 -
Please, enter the price: 100
The price entered is: 100