Возвращение нескольких значений функции(1 курс, с++)
int read()
{
int a, b, n;
double step;
cout << "Enter a and b: ";
cin >> a >> b;
cout << "Enter n > 1: " << endl;
cin >> n;
while (n <= 1)
{
cout << "Error! Enter n > 1" << endl;
cin >> n;
}
cout << "Enter step: " << endl;
cin >> step;
while (step == 0)
{
cout << "Error! Enter step != 0" << endl;
cin >> step;
}
//Как мне вернуть все эти значения//
}
Задание создать функцию для считывания данных, как вернуть все эти значения для использования в другой функции, если return возвращает только одно?
Ответы (1 шт):
Автор решения: LShadow77
→ Ссылка
Вернуть несколько значений функция не может по определению, однако она может сохранить эти значения через переданные ей указатели или ссылки. Например, через ссылки так:
void read(int& a, int& b, int& n, double& step)
{
cout << "Enter a and b: ";
cin >> a >> b;
cout << "Enter n > 1: " << endl;
cin >> n;
while (n <= 1)
{
cout << "Error! Enter n > 1" << endl;
cin >> n;
}
cout << "Enter step: " << endl;
cin >> step;
while (step == 0)
{
cout << "Error! Enter step != 0" << endl;
cin >> step;
}
}
Вызов будет выглядеть так:
int a, b, n;
double step;
read(a,b,n,step);
//a,b,n и step теперь содержат нужные значения
Также можно запихнуть значения в структуру и возвращать структуру (об этом написали в комментариях), либо передавать указатель/ссылку на структуру в качестве параметра - результат будет тот же.