【发布时间】:2019-09-10 19:06:48
【问题描述】:
我对 <iomanip> 头文件中定义的 C++ 函数 std::get_money 感到困惑。根据编程概念,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 也存在同样的混淆。
有哪些实际使用的例子?
【问题讨论】:
-
奇怪。它应该返回 10025。你的语言环境是什么?也许您的语言环境中的分部分被逗号分隔,您必须输入 100,25。
-
我不知道语言环境。你能解释一下吗?如何定义?
-
找到
std::put_money的相关答案:stackoverflow.com/a/15337053/10239789 -
与 I/O 不完全相关,但 you should never use a
doubleto represent prices.