std::cin 代表双和字符串
std::cin for double and string
我正在做一个货币兑换练习。程序应从输入流中读取货币的金额和名称,并以本国货币返回其值。
double amount = 0.0;
std::string currency = " ";
std::cout << "Please enter amount and currency ('usd','eur' or 'rub'):" << std::endl;
std::cin >> amount >> currency;
std::cout << amount << currency << std::endl;
if ( currency == "usd") {
...;
} else if ( currency == "eur" ) {
...;
} else if ( currency == "rub" ) {
...;
} else {
std::cout << "Input error: unknown currency..." << std::endl;
}
我在这个程序中遇到了一个奇怪的问题 std::cin。当输入"100美元"或"100卢布"时,程序分别回显"100美元"或"100卢布"并继续正常工作。但是当我输入"100eur"时,它会回显"0"并给出"输入错误..."线。同时,如果我输入"100欧元",程序会回显"100欧元"并且工作正常。在前两种情况下,我是否放置空格没有区别。
我做错了什么?
在 100eur 的情况下,它认为您正在尝试用科学记数法编写双精度:1.0e-10
但无法解析其余部分(因为 your 对指数"部分"无效)。
在其他情况下,它会在 100 处停止(当它到达 u/r 时),这对于双精度有效,因此解析成功。
相关文章:
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 由cin中的字符串中未捕获空白引起的分割错误
- cin >> int 给定一个字符串将 int 赋值为 0
- 从 cin 读取不会返回整个输入字符串
- 而循环跳过 cin.getline() 对于 C 字符串
- 使用 getline(cin, var) 两次在进行字符串比较时会产生错误 (==)
- C++程序在将 int 与 cin 一起使用时有效,但不能使用字符串
- 有没有办法让C++从 cin 中接收不确定数量的字符串?
- 在循环中使用 cin.get() 输入字符串
- 为什么 cin 在包含字符串标头后接受字符串输入
- 使用分配构造字符串时是否可以使用 cin?
- cin>>gender 和 cin>>*gender ( c 样式文本字符串)有什么区别
- CIN 标准::带空格的字符串
- 如何将字符输入限制为仅获取一个字符串"cin"
- C++:在 cin 重载中拼接字符串
- STD :: cin和Scanf()应用于字符串之间的区别
- 如何在CIN中以C 的CIN中的所有读取为字符串
- 将字符串从BASH脚本(C 程序)推入CIN
- 使用CIN时,字符串变量不会被覆盖
- "字符串"/"cin"未在此范围内声明