值返回函数调试错误 - C ++

时间:2015-10-07 01:22:58

标签: c++ return-value user-input

我正在初学C ++课程。以下是我的任务说明:

编写一个调用值返回函数的程序,该函数提示用户输入以磅为单位的人的权重,然后调用另一个值返回函数来计算以千克为单位的等效权重。输出两个四舍五入到两位小数的权重。 (注意,1千克= 2.2磅。)将输出格式化为两位小数。

我认为一切都很完美。但是,我收到一个调试错误,这是运行时检查错误#3 - T.请查看我的代码并告诉我这里有什么问题。记住,我是初学者。谢谢。

#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
using namespace std;

string get_date();
void student_heading();
float get_user_input(float);
float convert_weight(float);

int main()
{
cout << fixed << showpoint << setprecision(2);

string mydate;
float weight_lbs;
float weight_kgs;

mydate = get_date();
student_heading();
weight_lbs = get_user_input();
weight_kgs = convert_weight(weight_lbs);

return 0;
}

string get_date()
{
string mydate;
cout << "Enter today's date:";
getline(cin, mydate);
return mydate;
}

void student_heading()
{
cout << "*******************" << endl;
cout << "Student" << endl;
cout << "ID Number" << endl;
cout << "SYCS-135" << endl;
cout << "Assignment 6" << endl;
cout << "October 6, 2015" << endl;
cout << "******************" << endl;
}

float get_user_input(float lb_weight)
{
cout << "Please provide us with your weight, in pounds:";
cin >> lb_weight;
return lb_weight;
}

float convert_weight(float kg_weight)
{
float lb_weight;
kg_weight = lb_weight / 2.2;
return kg_weight;
}

2 个答案:

答案 0 :(得分:0)

您的错误是您正在调用weight_lbs = get_user_input();

你不能没有参数调用get_user_input,因为你没有这样的函数。

答案 1 :(得分:0)

您的代码有几个问题。

  • 您的函数原型不正确。大括号中的参数必须包含变量名称和数据类型。所以只有function(int)不是enaugh,它应该是function(int MyVariable)。因此,错误是由调用函数引起的,因为函数原型不正确(预期参数),因此函数原型不存在。

  • 您的get_user_input()函数有一个不需要的参数。整个功能应如下所示:

    float get_user_input()
    {
        cout << "Please provide us with your weight, in pounds:";
        float lb_weight;
        cin >> lb_weight;
        return lb_weight;
    }
    
  • 质量转换功能如下所示:

    float convert_weight(float lb_weight)
    {
        return  lb_weight / 2.2;
    }
    
  • 您的主要功能应如下所示:

    int main()
    {
        cout << fixed << showpoint << setprecision(2);
    
        string mydate;
        float weight_lbs;
        float weight_kgs;
    
        mydate = get_date();
        cout << mydate << endl;
        student_heading();
        weight_lbs = get_user_input();
        weight_kgs = convert_weight(weight_lbs);
        cout << weight_kgs << "Kg";
    
        getchar();
        getchar();
    
        return 0;
    }
    

别忘了将功能原型更改为:

float get_user_input();
float convert_weight(float lb_weight);