Почему, когда я вызываю эту функцию, она не возвращает мои входные данные? В нем говорится, что он возвращает поддержку, но это не так?

#c

Вопрос:

 #include <iostream>

// **Change needs_it_support so that it returns support:**
bool needs_it_support() {
  
  bool support;
  
  std::cout << "Hello. IT. Have you tried turning it off and on again? Enter 1 for yes, 0 for no.n";
  std::cin >> support;
  return support;
}

int main() {
  
  // **Change the following line to print the function result:**
needs_it_support();  **calling function**
  
}
 

Но ничего не распечатывается, я просто нажимаю 1 или 0, и мне ничего не возвращают обратно

Комментарии:

1. Функция возвращает результат. Вы игнорируете результат.

2. » Измените следующую строку для печати результата функции: » в следующей строке нет кода для печати возвращаемого значения

3. в какой части кода вы ожидали напечатать значение support ? Не путайте печать чего-либо на экране и возврат чего-либо из функции, это две совершенно разные вещи

4. Одна из проблем с комментариями к коду заключается в том, что их читают очень немногие. Не будь таким человеком.

Ответ №1:

вы должны распечатать результат после возврата из функции, в этом случае вы должны поместить что-то вроде этого :

 std::cout << needs_it_support() << std::endl;
 

или:

 bool result  = needs_it_support();
std::cout << result << std::endl;
 

Комментарии:

1. но я немного смущен, потому что что именно делает std::cout < он все еще просто выполняет весь код? и если да, то почему он не повторяет все выходные данные снова?

2. @juicywrldy std::cout << needs_it_support() << std::endl; этот код сначала выполняет функцию needs_it_support, затем результат будет возвращен из этой функции, после чего результат будет введен для ostream(что в данном случае std::cout ), а затем он будет напечатан.да, если вы запустите std::cout << needs_it_support() << std::endl; , он выполнит все needs_it_support .