Как вывести void в c

от admin

How can I call a void function in a cout statement?

I am trying to print out the mark and the letter grade on the same line but I am unable to call a void function in the cout statement, is there a way to do this? Also I understand I can call it on the next line after the cout statement but I need them to print on the same line.

6 Answers 6

You need to change the printLetterGrade such that it does return something. E.g.

(Of course, at this point, you may want to call the function something else too)

Print both in same function

If you want to print something on the same line, just don’t print the endl :

You can not cout the result of a void function or cast the void to something to be used on the cout , since there is nothing being returned.

If all you needed is the side effect of your function printLetterGrade and that the side effect take place exactly at a certain point in the cout sequence, you can change its return to something trivial that does not print,

Как вывести строку из функции void?

Я сделал функцию void и в настоящее время пытаюсь вывести результаты от передачи через нее строковой переменной, но эта ошибка возникает, и я не уверен, что она подразумевает. Я использовал этот код для вывода void-функций в прошлом, поэтому я не уверен, почему этот отличается. Ниже на строке, которая находится внутри цикла if, находится строка, которая является источником ошибки.

///
Ошибка гласит: ошибка: нет совпадения для оператора ‘<<‘(типы операндов:’ std :: basic_ostream ‘и’ void ‘)

Решение

void означает, что функция не возвращает никакого значения.

Следовательно, cout << «Edited text: » << replaceExclamation(a) << endl; неправильно.

Чтобы написать так, вы должны изменить функцию, чтобы вернуть string значение.

Другие решения

В вашем коде модификация применяется к локальной переменной и не будет отражена в основной. Используйте передачу по ссылке так:

Как правильно использовать void и return в С#?

В Console.WriteLine(summaNumbers(10)) возникает ошибка: не удается преобразовать из «void» в «bool».

Второй вариант задачи. Возвращает уже сумму чисел кратных 3 и 5.

Здесь возникает ошибка в методе summaNumbers(int x): не все ветви кода возвращают значение.
Вопросы:
1. Почему метод Console.WriteLine() пытается провести преобразования, он ведь должен просто вывести в консоль?
2. Где я в методе summaNumbers(int x) не поставил return.
3. Пробовал менять тип возвращаемого значения метода summaNumbers(int x): void, int, ставил return в разные строчки кода, все равно ошибка. Объясните как вообще использовать void и return, или дайте ссылку где почитать.
4. Может быть ошибка алгоритме или в других частях кода, подскажите.
Спасибо.

  • Вопрос задан более трёх лет назад
  • 4637 просмотров
  • Facebook
  • Вконтакте
  • Twitter
  • Facebook
  • Вконтакте
  • Twitter
Читать:
Версии radeon software и драйвера не совпадают что делать

no_one

Со вторым вариантом разобрался, поставил return как вы написали, все заработало. Но вот с первым вариантом — я хочу чтобы метод все числа кратные 3 и 5 просто вывел в консоль, при таком исполнении:

выводится 3,5,6,9,9 . две 9-ки, Console.WriteLine выводит их два раза (указал в коде если я правильно понял), а нужно 1 раз т.е. 3,5,6,9.
Если делаю так.

Т.е. при определении метода ошибок нет, а при его вызове есть.
Как вызвать метод чтобы он просто вывел список чисел в консоль?

Рамиль А: вам не нужно делать два вывода. то есть, по вашей логике выглядит, будто writeline выводит что-либо только в main. но он выводит текст в тот момент, когда вы его вызовете. то есть, в вашем случае main может выглядеть просто

а numbers как во втором варианте. То есть, вам не нужно запоминать и возвращать значение, если хотите просто вывести (тем более, что их несколько). Просто вызовите метод, которые сделает всё, что нужно. А вот если есть в планах потом что-то делать с этими числами, то нужно возвращать, и тогда возвращаемое значение, в самом простом варианте — просто массив чисел (int[]), иначе вернётся только одно, или последнее. Кстати, вот почему две девятки выводились. Сначала в методе numbers вы выводили в цикле все числа. И каждое из них записывалось в переменную temp, переопределяя предыдущую. А затем этот temp возвращался и выводился, а так как раз лежало последнее число.

Урок №29. Тип данных void

Тип void — это самый простой тип данных, который означает «отсутствие любого типа данных». Следовательно, переменные не могут быть типа void:

Тип void, как правило, используется в трех случаях:

Использование №1: Указать, что функция не возвращает значение:

Использование №2: Указать, что функция не имеет никаких параметров (перешло из языка Cи):

Указание типа void как «никаких параметров» является пережитком, сохранившимся еще со времен языка Cи. Следующий код равнозначен и более предпочтителен для использования в языке C++:

Правило: Используйте пустой список параметров вместо void для указания отсутствия параметров в функции.

Использование №3: Ключевое слово void имеет третий (более продвинутый) способ использования в языке C++, который мы будем рассматривать на уроке №92.

Урок №28. Инициализация, присваивание и объявление переменных

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

Ключевое слово void имеет третий более продвинутый.
Этот void какой то эпический, уже 2й раз читаю что о нем мы узнаем дальше))) Мне кажется это пасхалка какая-то))

Если все-таки разделять понятия "процедура" и "функция" (понимаю, что в C понятие "процедура" отсутствует), то void станет более понятным.
Процедура — это просто последовательность действий.
Функция — это как бы "ответ на вопрос".
"Отсортируй переданный в параметрах массив" — процедура (void).
"Что получится, если перемножить переданные параметры?" — функция.

Похожие статьи