C ++中的双重功能

时间:2015-10-02 13:08:09

标签: c++

我被困在第3.3章使用C ++的原则和实践:

他提到: - 获取要运行的“名称和年龄”示例。然后,修改它以写出月份的年龄: 以年为单位读取输入并乘以(使用*运算符)12。将年龄读入a 允许可以为自己五岁半而自豪的孩子加倍 而不仅仅是五个。

这是我运行的名称和年龄示例,没有任何问题:

    #include "std_lib_facilities.h"

    int main()

    {
    cout << "Please enter your name and age.\n";
    string name;            //string variable
    int age;                //integer variable
    cin >> name >> age;     //reads string and integer
    cout << "Hello, " << name << " (Age: " << age << ")\n";
    }

之后,我尝试将年龄改为几个月而不是我能用这个来实现:

    #include "std_lib_facilities.h"

    int main()
    {
    cout << "Please enter your name and age\n";
    string name;
    int age;
    cin >> name >> age;
    cout << "Hello, " << name << " (Age: " << age * 12 << " Months Old)\n";
    }

所以问题仍然存在,我如何将这个年龄读成一个双重的&#39;?虽然我设法让我的输出显示几个月的年龄,但我相信我还没有清楚地理解解决这个问题的方法。

2 个答案:

答案 0 :(得分:4)

只需使用double作为变量的类型来读取数据。

// What is this?    
//#include "std_lib_facilities.h"
#include <iostream>
#include <string>
using std::cout;
using std::string;
using std::cin;

int main()
{
    cout << "Please enter your name and age\n";
    string name;
    double age;
    cin >> name >> age;
    cout << "Hello, " << name << " (Age: " << age * 12 << " Months Old)\n";
    return 0;
}

答案 1 :(得分:1)

只需将年龄宣布为双倍。你的问题应该解决了。

示例代码

#include "std_lib_facilities.h"

int main()
{
cout << "Please enter your name and age\n";
string name;
double age;
cin >> name >> age;
cout << "Hello, " << name << " (Age: " << age * 12 << " Months Old)\n";
}

现在程序应该没有任何问题。