为什么我的质量计算器无法在空格上正常工作?

马尔科·格博维奇(Marko Grbovic)
#include <iostream>
#include <string>



using namespace std;

/*
Function Name: weightConv
Purpose: To take the weight and convert the following number to the coressponding weight unit
Return : 0
*/
  double weightConv(double w, string weightUnit)
{

      if (weightUnit == "g" || weightUnit == "G" )
        cout << " Mass = " <<  w * 0.035274 << "oz";
    else if (weightUnit == "oz"||weightUnit == "OZ"||weightUnit == "oZ" ||weightUnit == "Oz")
        cout << " Mass = " <<  w / 28.3495 << "g";
    else if (weightUnit == "kg"||weightUnit == "KG"||weightUnit == "Kg" ||weightUnit == "kG")
        cout << " Mass = " <<  w * 2.20462 << "lb";
    else if (weightUnit == "lb" ||weightUnit == "LB" ||weightUnit== "Lb" ||weightUnit == "lB")
        cout << " Mass = " <<  w * 0.453592 << "kg";
    else if (weightUnit == "Long tn" ||weightUnit == "LONG TN"|| weightUnit == "long tn" || weightUnit == "long ton")
        cout << " Mass = " <<  w * 1.12 << "sh tn";
    else if (weightUnit == "sh tn" || weightUnit == "SH TN")
        cout << " Mass = " << w / 0.892857 << " Long tons";
    else if (weightUnit == "s" || weightUnit == "S")
        cout << " Mass = " << w * 6.35029 << "stones";
    else
        cout << "Is an unknown unit and cannot be converted";

    return 0;   
}// end of weightCov function


int main()
{
    for (;;)
    {

        double mass;
        string unitType;
        cout << "Enter a mass and its unit type indicator(g,kg,lb,oz,long tn,or sh tn)" << endl;
        cin >> mass >> unitType;

            // Output Results
            cout << weightConv(mass, unitType) << endl;

    }// end of for loop
}// end of main 

没有空格的重量单位效果很好。问题是长tn(长吨)和sh tn(短吨)单位不起作用,我假设这是因为字符串之间存在间距。谁能帮忙。提前致谢。

温特穆特

std::istreamoperator>>(std::string &),你在这里使用:

cin >> mass >> unitType;

读取以空格分隔的标记。这意味着,当您输入"12 long tn"输入流时,mass将为12.0unitType将为"long"

解决问题的方法可能涉及std::getline,如

std::cin >> mass;
std::getline(std::cin, unitType);

这将一直读到下一个换行符。但是,这不会像这样剥离前导空格operator>>,因此您将被" long tn"代替"long tn"您需要像这样显式地忽略那些空格:

std::cin >> std::ws;

最终,您将拥有

std::cin >> mass >> std::ws;      // read mass, ignore whitespaces
std::getline(std::cin, unitType); // the rest of the line is the unit

请注意,这不会删除结尾的空格,因此,如果您的用户键入"12 long tn ",它将无法识别该单位。如果出现问题,则必须从末尾手动剥离它们unitType

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的flex和bison程序无法正常工作?正弦和余弦函数的计算器

来自分类Dev

为什么我的增量计算不正确?

来自分类Dev

JavaScript计算器无法正常工作

来自分类Dev

当用户输入错误时,如何在我的Python重量计算器中显示错误消息

来自分类Dev

我的简单计算器由于某种原因无法正常工作

来自分类Dev

产品价格计算器无法正常工作

来自分类Dev

在Javascript中,简单的计算器无法正常工作

来自分类Dev

矩阵计算器错误 - 无法正常工作

来自分类Dev

批处理十进制变量计算器

来自分类Dev

为什么在加法和减法工作正常的情况下,计算器在相乘和相除时总是给我0?

来自分类Dev

为什么JFlap无法从我的计算器语法构建可用的LL(1)解析器?

来自分类Dev

为什么我的CSS选择器无法正常工作?

来自分类Dev

我找不到为什么这个简单的JS无法使用。(销售税计算器)

来自分类Dev

为什么我的“变更计算器”输出错误?

来自分类Dev

为什么我的排列计算器返回小数?

来自分类Dev

为什么我的Perl计算器总是返回0?

来自分类Dev

为什么我的__clone()无法正常工作?

来自分类Dev

为什么我的ViewBag无法正常工作?

来自分类Dev

为什么我的DATEPART无法正常工作?

来自分类Dev

为什么我的闹钟无法正常工作?

来自分类Dev

为什么我的ButtonClickListerner无法正常工作?

来自分类Dev

为什么我的.hover()无法正常工作?

来自分类Dev

为什么我的BXSlider无法正常工作?

来自分类Dev

为什么我的ButtonClickListerner无法正常工作?

来自分类Dev

为什么我的功能无法正常工作

来自分类Dev

为什么我的加入无法正常工作?

来自分类Dev

为什么我的clearfix无法正常工作?

来自分类Dev

为什么我的加载无法正常工作

来自分类Dev

为什么我的SQL无法正常工作?

Related 相关文章

  1. 1

    为什么我的flex和bison程序无法正常工作?正弦和余弦函数的计算器

  2. 2

    为什么我的增量计算不正确?

  3. 3

    JavaScript计算器无法正常工作

  4. 4

    当用户输入错误时,如何在我的Python重量计算器中显示错误消息

  5. 5

    我的简单计算器由于某种原因无法正常工作

  6. 6

    产品价格计算器无法正常工作

  7. 7

    在Javascript中,简单的计算器无法正常工作

  8. 8

    矩阵计算器错误 - 无法正常工作

  9. 9

    批处理十进制变量计算器

  10. 10

    为什么在加法和减法工作正常的情况下,计算器在相乘和相除时总是给我0?

  11. 11

    为什么JFlap无法从我的计算器语法构建可用的LL(1)解析器?

  12. 12

    为什么我的CSS选择器无法正常工作?

  13. 13

    我找不到为什么这个简单的JS无法使用。(销售税计算器)

  14. 14

    为什么我的“变更计算器”输出错误?

  15. 15

    为什么我的排列计算器返回小数?

  16. 16

    为什么我的Perl计算器总是返回0?

  17. 17

    为什么我的__clone()无法正常工作?

  18. 18

    为什么我的ViewBag无法正常工作?

  19. 19

    为什么我的DATEPART无法正常工作?

  20. 20

    为什么我的闹钟无法正常工作?

  21. 21

    为什么我的ButtonClickListerner无法正常工作?

  22. 22

    为什么我的.hover()无法正常工作?

  23. 23

    为什么我的BXSlider无法正常工作?

  24. 24

    为什么我的ButtonClickListerner无法正常工作?

  25. 25

    为什么我的功能无法正常工作

  26. 26

    为什么我的加入无法正常工作?

  27. 27

    为什么我的clearfix无法正常工作?

  28. 28

    为什么我的加载无法正常工作

  29. 29

    为什么我的SQL无法正常工作?

热门标签

归档