我尝试使用 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;
}
答案 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);
我不喜欢字符串函数,所以我使用的是字符数组。我会以任何一种方式工作。我不确定字符串是否像字符数组一样通过引用传递。