Возврат ввода в C ++ - PullRequest
0 голосов
/ 18 июня 2020

Я новичок в C ++, и мне было интересно, есть ли способ вернуть целочисленный ввод из функции напрямую, не сохраняя его в переменной. Чтобы быть более ясным:

#include <iostream>

int function()
{
    std::cin >> (return function here???)
}
int main()
{
    int number = function()
    std::cout << number
    return 0;
}

Спасибо за любую помощь.

1 Ответ

3 голосов
/ 18 июня 2020

, если был способ вернуть целочисленный ввод из функции напрямую, не сохраняя его в переменной.

Нет. Все стандартные интерфейсы ввода принимают объектный аргумент, который они модифицируют, а не возвращают результирующее значение 1 .

Возможная причина такой конструкции состоит в том, что очень типично плохой ввод. Единственный способ избежать возврата int из функции, объявленной как return int, - это выбросить (или завершить процесс, но это было бы глупо). И ошибка ввода, возможно, считается настолько неисключительной, что использование исключений для потока управления обработки ввода может считаться неуместным. Это всего лишь мои рассуждения, а не авторитетное объяснение выбора дизайна.

Если вы исправите свой function, чтобы он был правильным, с необходимой переменной и проверкой ошибок, то вы можете использовать эту функцию для сделайте именно это:

return function();

1 За исключением std::istream::get() и соответствующих C style std::getc и std::fgetc, которые вы можете использовать для извлечения один символ, который они возвращают напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...