有什么方法可以检查字符串的输入是否在00到99的范围内?
我正在创建一个用于赚钱的类,因为不建议使用float,所以我想到将输入分成两个字符串。一欧元,一美分。之后,组合字符串并将其流式传输到int Long。但是问题是,如果用户使用的位数太少或太多,那么整件事将成为灾难。
void Money::deposit() {
cout << "How much do you want to deposit? (Euros [ENTER], Cents [ENTER)" << endl;
string euros, cents;
cout << "Deposit: " << flush; cin >> euros; cout << "," << flush; cin >> cents;
}
我建议您首先将金额作为一个字符串,然后分析该字符串-查找小数点(如果有),确定是否喜欢用户以美分提供的位数(=数字字符),等等。std::string
类具有许多可用于此目的的相关方法。
这样做的好处是,您将避免潜在的解析失败,并且不必处理烦人的iostream语义。
但是请注意,此解决方案非常初级,在其他地区和/或其他货币中将无法使用。或者更确切地说,您将需要重写其他人编写的许多代码。如果要“认真”执行此操作,请查找用于使用货币值的现有库,可能是支持区域设置的库。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句