Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
pro100skif
0 / 0 / 0
Регистрация: 17.03.2014
Сообщений: 41
#1

Передача параметров функциям. Можно ли изменить этот параметр внутри функции - C++

17.03.2014, 02:00. Просмотров 270. Ответов 2
Метки нет (Все метки)

Доброго времени суток, господа знатоки.В универе препод задал сделать проверку входных данных на ошибку.Я полазил по форумам и нашел вот такой вариант:
C++
1
2
3
4
5
6
double number;
    while ((cin >> number).fail() || cin.get() != '\n')//цикл который повторяется пока не будет присвоено значение переменной number
    {
        cin.clear();
                cin.sync();
         }
Но потом меня посетила идея написать функцию что б не нужно было каждый раз писать код написанный выше.Но столкнулся с проблемой.Если я правильно понимаю то когда мы передаем параметры функции то используются не сами параметры, а их копии, как я понял нельзя изменять параметр который я передаю функции в самой функции.Возможно использование указателей решит мою проблему на данный момент я написал такую функцию:
C++
1
2
3
4
5
6
7
8
9
10
double vertification()//описание функции vertification
{
    double number;
    while ((cin >> number).fail() || cin.get() != '\n')//цикл который повторяется пока не будет присвоено значение переменной number
    {
        cin.clear();
        cin.sync();
    }
    return number;
}
Возможно вы могли б помочь написать ее так что б если я напишу vertification(x) то функция записывала б значение в х сразу и без промежуточный переменных. Заранее спасибо за помощь)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2014, 02:00     Передача параметров функциям. Можно ли изменить этот параметр внутри функции
Посмотрите здесь:

C++ Передача параметров функции с пoмощью указателя
Передача размерности массива как параметр из одной функции в другую. C++
C++ Передача массивов указателей в качестве параметров функции
Передача параметров во виртуальные функции, перегрузка C++
Передача параметров функции в main() C++
C++ Передача параметров функции
C++ Передача параметров в функции
C++ Передача функции как параметр шаблона
Как можно изменить параметр шаблона (template)? C++
C++ Передача параметров функции
C++ Передача параметров функции
динамическое создание двумерного массива и передача его как параметр функции C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5413 / 4809 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.03.2014, 03:06     Передача параметров функциям. Можно ли изменить этот параметр внутри функции #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
void vertification(double& number);
...
void vertification(double& number) //определение функции vertification
{
    while ((cin >> number).fail() || cin.get() != '\n')//цикл который повторяется пока не будет присвоено значение переменной number
    {
        cin.clear();
        cin.sync();
        // тут сообщение об ошибке и указание на повторный ввод
    }
}
Добавлено через 42 секунды
Цитата Сообщение от alsav22 Посмотреть сообщение
cin.sync();
Не сработает в Linux. Можно заменить на:
C++
1
 while (cin.get() != '\n');
или
C++
1
cin.ignore(numeric_limits<streamsize>::max(), '\n');
pro100skif
0 / 0 / 0
Регистрация: 17.03.2014
Сообщений: 41
17.03.2014, 03:56  [ТС]     Передача параметров функциям. Можно ли изменить этот параметр внутри функции #3
Спасибо за помощь.
Yandex
Объявления
17.03.2014, 03:56     Передача параметров функциям. Можно ли изменить этот параметр внутри функции
Ответ Создать тему
Опции темы

Текущее время: 21:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru