2012-05-03 2 views
0

Я делаю программу палача, чтобы практиковать мои функции. Это мой запуск, чтобы проверить функцию. По какой-то причине он пропускает функцию char guess (char guess); Единственное, что он ставит на экран - это предложение «Добро пожаловать в Hangman 2.0» и предложение «Это то, что вы ввели». Если вы знаете, что не так, можете ли вы, пожалуйста, рассказать мне, почему это неправильно. Beceause I's 15 и мне нравится учиться.C++ skips function

Это мой код:

#include <iostream> 
#include <string> 
#include <ctime> 
#include <cctype> 
#include <vector> 
#include <algorithm> 

using namespace std; 


char guess; 

char guessing(char guess); 
void check(); 

int main() 
{ 
    cout <<"Welcome to Hangman 2.0. Enjoy, have fun and good luck!!\n\n"; 

    check(); 

    return 0; 
} 



char guessing(char guess) 
{ 
    cout <<"Enter a guess: "; 
    cin >> guess; 

    return guess; 
} 

void check() 
{ 
    char guessing(char guess); 
    cout <<"This is what you entered: "; 
    cout << guess; 
} 
+2

Вы должны получить книгу на C++ и узнать, как для вызова функции из кода. –

+0

@ KonradRudolph У меня есть один, но, как я сказал, мне 15, и книга в Энглиши, которая не является моим родным языком, поэтому мне трудно понять некоторые вещи. – Stijn

+0

Да, я удивлен, что это компилируется. Что здесь думает компилятор? –

ответ

1

Вы не звонит функцию правильно, попробуйте:

void check() 
{ 
    char ch = guessing(); 
    cout <<"This is what you entered: "; 
    cout << ch; 
} 

и изменить ваше угадывание функции так:

char guessing() 
{ 
    char guess; 
    cout <<"Enter a guess: "; 
    cin >> guess; 

    return guess; 
} 

Таким образом, вам не нужна переменный в guess члена и вам не нужно передавать аргументы вашей функции.

Кроме того, вызов функции говорят char guessing(char guess); в C++ будет что-то вроде:

char res = guessing('a'); 

не определяет типы возврата или параметры типов при вызове функции.

+0

Спасибо, что работает отлично! не могли бы вы просто дать мне дополнительную информацию о char res = guessing ('a'); вещь, я не понимаю это точно. – Stijn

1

Функция check() неверна, вы определяете функцию, не вызывающую ее. Вы хотите:

void check() 
{ 
    char c = guessing(); 
    cout << "This is what you entered: " << c; 
} 

И тогда guessing() не должен принимать параметр, он должен просто вернуть полукокса.

0

Просто попробуйте это, заменить функцию проверки этим :::

void check() 
{ 
    char guess; 
    guess = guessing(guess); 
    cout <<"This is what you entered: "; 
    cout << guess; 
} 

Но параметр вашей функции угадывание бесполезно ...