2014-02-08 12 views
0

У меня проблема с моим кодом, поскольку я не могу понять, почему я получаю сообщение об ошибке. Вот код:Функция не принимает 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 и никогда не звоня в другие функции, я все равно получаю две из трех ошибок.

ответ

0

Вы заявили об этом на вершине:

bool stringChar(); 
bool stringVal(); 

Так что компилятор ожидает функции StringChar и stringVal не имеют аргументов. Изменение декларации:

bool stringChar(string response); 
bool stringVal(string response); 
+0

Специальное примечание: это не C, где пустые скобки означает неизвестное количество параметров. – chris

+0

По-видимому, я должен был узнать о прототипах функций еще немного, прежде чем реализовать их. благодаря –

Смежные вопросы