C ++函数返回值存储变量问题

时间:2014-07-30 17:20:32

标签: c++ function parameters return

我尝试使用 UserPrompt 函数的返回值存储 numofterms ,但除了输入参数的double之外,它还在继续查找字符串。有什么方法可以解决这个问题吗?

const string PROGDESCRIPTION = "Program will approximate the natural logarithm of 2 ";

double UserPrompt(string prompt, double terms)
{


    cout << prompt;
    cin >> terms;

    while(terms <= 0)
    {
        cout << "ERROR - Input must be positive and non-zero! Please Try again. ";
    }
    return terms;
}
int main()
{

double numofterms;

cout << PROGDESCRIPTION << endl << endl << endl;

UserPrompt("Enter the number of terms to compute: ", numofterms); 

numofterms = UserPrompt(numofterms); 
cout << numofterms;

}

2 个答案:

答案 0 :(得分:3)

改变这个:

double UserPrompt(string prompt, double terms)
{

对此:

double UserPrompt(string prompt)
{
    double terms;

而且:

UserPrompt("Enter the number of terms to compute: ", numofterms);
numofterms = UserPrompt(numofterms);

对此:

numofterms = UserPrompt("Enter the number of terms to compute: "); 

答案 1 :(得分:0)

我发现C ++不喜欢你在函数中传递文字。所以做一些像

这样的事情
char prompt[101] = "Enter the number of terms to compute: ";

UserPrompt(prompt, numofterms);

我不喜欢字符串函数,所以我使用的是字符数组。我会以任何一种方式工作。我不确定字符串是否像字符数组一样通过引用传递。