У меня проблема с моим кодом, поскольку я не могу понять, почему я получаю сообщение об ошибке. Вот код:Функция не принимает 1 аргумент C++
using namespace std;
void presentValue();
bool stringChar();
bool stringVal();
double futureValConv();
int main()
{
cout << "Welcome to the Present Value Interest Calculator!\n\"First, let me collect some data." << endl << endl;
presentValue();
return 0;
}
void presentValue()
{
//declare variables
//Response value intialized as x for debugging
char response = 'x';
while (response != 'n' || response != 'N')
{
//declare variables
double intRate = 0;
string futureValString;
double futureVal;
double years = 0;
//Simple present value equation
double presentVal = futureVal/pow((intRate + 1), years);
cout << "What's your Interest Rate? ";
cin >> intRate;
cout << "OK, and what's your desired Future Value? [H}elp ";
cin >> futureVal;
//Run descending help program that won't allow escape without a double value
**futureVal = futureValConv(futureValString);**
cout << endl << endl << "And finally, how many years would you like to save your money for? ";
cin >> years;
cout << endl << "You've made it this far!!!";
cout << endl << endl << presentVal;
}
}
inline double futureValConv(string somestring)
{
//delcare variables
double newString = 0;
**if (stringChar(somestring))**
{
cout << endl << "Future Value is the amount you would like to have in your account in the future.\n\n";
cout << "How much might that be? ";
cin >> somestring;
futureValConv(somestring);
}
**else if(stringVal(somestring))**
{
//Convert the Future Value String to a double for future use
newString = atoi(somestring.c_str());
}
else
{
cout << "Please enter a proper value. ";
futureValConv(somestring);
}
return newString;
}
bool stringChar(string response)
{
//declare variables
char answer = response[0];
bool status = false;
if (answer == 'H' || answer == 'h')
{
status = true;
return status;
}
}
bool stringVal(string response)
{
//declare varialbes
int answer = atoi(response.c_str());
bool status = false;
int powZero = (answer, 0);
if (powZero == 1)
{
status = true;
return status;
}
}
Я разместил большую часть своего кода, потому что я не могу понять, что здесь происходит. Он говорит мне, что stringChar и stringVal не принимают 1 аргументы, а также futureValConv. Я пытаюсь запустить функцию, проверяющую значение строки и определяя, что это значение перед принятием решения. В двух из трех экземпляров функция вызывает себя для повторного запуска до тех пор, пока пользователь не введет приемлемый двойной (что я проверю, выполнив мощность 0 для ответа 1.) Я выделил три строки, генерирующих ошибку , Интересно, что даже комментируя функцию futureValConv и никогда не звоня в другие функции, я все равно получаю две из трех ошибок.
Специальное примечание: это не C, где пустые скобки означает неизвестное количество параметров. – chris
По-видимому, я должен был узнать о прототипах функций еще немного, прежде чем реализовать их. благодаря –