我对std::get_money
头文件中定义的C ++函数<iomanip>
感到困惑。根据编程概念,get_money
有什么用?
我使用std::get_money
有以下代码。
#include <iostream> // std::cin, std::cout
#include <iomanip> // std::get_money
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;
}
当我输入100.25的输入时,它返回100.输出和货币格式之间的关系是什么?我读了this参考,但无法理解这种关系。 std::put_money
,std::get_time
和std::put_time
也存在同样的困惑。
它的实际用途有哪些例子?
这是我不知道的标准库的一部分!根据cppreference,您必须设置区域设置以定义应如何格式化时间和金钱。这里我使用的是en_US语言环境。
#include <iomanip>
#include <iostream>
int main() {
long double price;
std::cin.imbue(std::locale("en_US.UTF-8"));
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';
}
}
不过,这对我来说似乎有点挑剔。该号码必须包含一个至少两位数的.
。 $
是可选的。