如何使用其他函数的字符串?

时间:2014-06-08 15:44:08

标签: c++ function methods scope main

在我的程序中(我将在下面包含代码),我有一个函数来确定用户的名字和高度。我首先使用名称函数void name(),然后使用函数void height()(当然main是最后一个)。

我要做的是在整个程序中显示用户的名字。在我的第二个函数中,void height()询问用户他们有多高:

cout << " How tall are you?" << endl;

我想问一下“你有多高,名字1?” ,但字符串name1未在范围内声明。任何关于如何使它工作/我做错了什么的想法?谢谢。此外,如果您发现任何其他问题或我可以做的事情,以使事情更容易/替代方式,请告诉我! (我是新人!)

#include <iostream>
#include <string>

using namespace std;


void name()
{
    cout << "Welcome ________ ... uhmmmm, what was your name again?   ";
    string name1;
    cin >> name1;
    cout << " " << endl;
    cout << " Oh that's right! Your name was " << name1 << ", how could I forget that?!" << endl;

}

void height()
{
    //feet and inches to inches
    cout << " How tall are you?" << name1 << endl;
    cout << " " << endl;
    cout << " " << endl;
    cout << " Enter feet:    ";
    int feet;
    cin >> feet;
    cout << " " << endl;
    cout << " Enter inches:    ";
    int inches;
    cin >> inches;
    int inchesheight;

    inchesheight = (feet * 12) + inches;

    cout << " " << endl;
    cout << " Your height is equal to " << inchesheight << " inches total." << endl;


    if (inchesheight < 65 )
    {
        cout << " You are shorter than the average male." << endl;
    }
    else if (inchesheight > 66 && inchesheight < 72)
    {
        cout << " You are of average height." << endl;
    }
    else
    {
        cout << " You are taller than average." << endl;
    }
}




int main()
{
    name();
    height();
    return 0;
}

1 个答案:

答案 0 :(得分:1)

返回string而不是void

string name()
{
    cout << "Welcome ________ ... uhmmmm, what was your name again?   ";
    string name1;
    cin >> name1;
    cout << " " << endl;
    cout << " Oh that's right! Your name was " << name1 << ", how could I forget that?!" << endl;
    return name1;
}

height()相同,例如,应返回int。也可以在height函数中获取名称。

int height(string name1)
{
    // cout stuff about name
    return userHeight;
}

然后你可以这样称呼它:

int main()
{
    string userName = name();  // takes the return from name and assigns to userName
    int userHeight = height(userName);   // passes that string into height()
    return 0;
}

使用函数和返回事物的更多示例:

int add(int a, int b)
{
    int total = a + b;   // the variable total only exists in here
    return total;
}

int add4Numbers(int w, int x, int y, int z)
{
    int firstTwo = add(w, x);  // I am caling the add function
    int secondTwo = add(y,z);  // Calling it again, with different inputs
    int allFour = add(firstTwo, secondTwo);   // Calling it with new inputs
    return allFour;
}   // As soon as I leave this function, firstTwo, secondTwo, and allFour no longer exist
    // but the answer allFour will be returned to whoever calls this function

int main()
{
    int userA = 1;
    int userB = 7;
    int userC = 3;
    int userD = 2;

    int answer = add4Numbers( userA, userB, userC, userD )  // this grabs the value from allFour from inside the add4Numbers function and assigns it to my new variable answer
    return answer;  // now equals 13
}