2015-11-27 2 views
-7

Привет Мне нужна помощь с некоторым кодом. Мне нужно проверить функцию, но я получаю ошибку компилятора каждый раз, когда пытаюсь скомпилировать. вот что я получаю, ошибка: сравнение между разными типами указателей «void» ()() 'и' const char 'не хватает актерского состава. Вот мой код.Как проверить функции с помощью оператора if

#include <iostream> 
using namespace std; 

void getInput(); 
bool gameGoing = true; 

int main() 
{ 
do{ 

    cout << "hello world this is a test.\n"; 
    getInput(); 
    if(getInput == "false") 
    { 
     return 0; 
    } 

}while(gameGoing = true); 
} 

void getInput() 
{ 
string userInput; 
cin >> userInput; 
} 
+1

Совершенно непонятно, что вы хотите достичь. Ваша функция не имеет возвращаемого значения, и вы пытаетесь сравнить указатель на строку – UnholySheep

ответ

0

Если вероятно

#include <iostream> 
using namespace std; 

string getInput(); 
bool gameGoing = true; 

int main() 
{ 
    do 
    { 

     cout << "hello world this is a test.\n"; 
     if(getInput() == "false") 
      return 0; 

    } while(gameGoing == true); 
} 


string getInput() 
{ 
    string userInput; 
    cin >> userInput; 
    return userInput; 
} 

Что изменилось:

  • добавлен тип возвращаемого значения функции getInput, так что в результате этого не получает отклонил
  • зафиксировано сравнение if, чтобы фактически сравнить результат getInput function againtЗначение
  • фиксируется состояние времени, чтобы сравнить gameGoing с true значением, а не перезаписывать его
+0

'while (true == gameGoing)' –

+0

Также 'main' должен иметь« return 0; »после цикла (если для другого нет разум, чем хорошая практика программирования) – UnholySheep

+1

@UnholySheep: Не требуется в C++, он вернет 0, если не вернется в конце функции. –

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