2012-05-03 99 views
0

我在做一个hang子手程序来练习我的功能。 这是我的启动来测试一个功能。 由于某种原因,他跳过了函数char guessing(char guess); 他在屏幕上唯一显示的是“Welcome to Hangman 2.0”句子和“这就是你输入的”句子。 如果你知道什么是错的,请告诉我为什么它是错的。 除了我15岁,我喜欢学习东西。C++跳过功能

这是我的代码:

#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岁,这本书是Enlgish这不是我的母语,所以我很难理解一些事情。 – 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

0

你需要调用

guessing(guess); 

char guessing(char guess); 
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; 
} 

但你猜函数的参数也没用......