0 / 0 / 1
Регистрация: 16.02.2014
Сообщений: 113
1

Как сделать чтоб все проверки вызывались одной функцией?

16.06.2014, 15:53. Показов 1086. Ответов 11
Метки нет (Все метки)

Доброго времени суток! Имеется код с огромным числом вот таких проверок:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cout << "\nEnter number (-100000 to 100000): ";
while(!(cin>>x) || (x<(-100000)) || (x>100000) || cin.get() != '\n' ) //incorrect input protection
{
    cout<<"Input incorrect. Please, try again.\n";
    cin.clear(); // resets all bits of stream
    cin.sync(); //remove data from the buffer
    cout << "\nEnter number (-100000 to 100000): ";
}
 
cout << "\nEnter accuracy (1 to 5): ";
while(!(cin>>e) || (e<1) || (e>5) || cin.get() != '\n' ) //incorrect input protection
{
    cout<<"Input incorrect. Please, try again.\n";
    cin.clear(); // resets all bits of stream
    cin.sync(); //remove data from the buffer
    cout << "\nEnter accuracy (1 to 5): ";
}
Как сделать чтоб все эти проверки вызывались одной функцией? Спасибо заранее.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2014, 15:53
Ответы с готовыми решениями:

Как сделать так , чтоб возвращались первоначальные значения массива, перед работой с функцией
В моей задаче программа работает с одним массивом на всём протяжении, как сделать так чтоб перед...

Как можно сделать цикл проверки всех файлов в одной папке
Здравствуйте, можете ли кто-нибудь подсказать как можно сделать цикл проверки всех файлов в одной...

Как в TollBar сделать, чтоб на одной строке (один под другим) были 2 компонента?
Друзья! Подскажите источник, где можно подробно почитать о всех компонентах билдера. Либо хотябы...

как сделать чтоб картинка увеличивалас а вокруг все тамнело как на этом сайте
как сделать чтоб картинка увеличивалас а вокруг все тамнело как на этом сайте

11
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
16.06.2014, 16:01 2
Условие в while и тип вводимой переменной везде одинаков?
0
0 / 0 / 1
Регистрация: 16.02.2014
Сообщений: 113
16.06.2014, 16:04  [ТС] 3
И можно ли сделать чтобы менялся тип элемента в функции? Там x - float, а e - int, но функцию одну можно сделать для них?

Добавлено через 1 минуту
Вот) Опоздал просто. Тип разный может быть. Возможно ли для разных типов сделать одну функцию? while везде одинаков, но, как Вы уже заметили, текст меняется.
0
Котовчанин
940 / 480 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
16.06.2014, 16:07 4
C++
1
2
3
4
5
6
7
8
9
10
void check_something(char num, int low, int upper)
{
    if (num < low || num > upper || num != '\n')
    {
        std::cout<<"Input incorrect. Please, try again.\n";
        std::cin.clear(); 
        std::cin.sync();
        std::cout << "\nEnter accuracy ("<< low << " to " << upper <<"): ";
    }
}
1
0 / 0 / 1
Регистрация: 16.02.2014
Сообщений: 113
16.06.2014, 16:12  [ТС] 5
Тамика, Спасибо, но не совсем то. Мы вот тут
C++
1
!(cin>>x)
проверяем подходит ли нам тип, а если char, то теряется суть проверки. Да и текст в последнем cout меняется. Его нужно как-то скопировать.

Сделать можно несколько функций для разных типов, а как с текстом в cout быть я понятия не имею.
0
Котовчанин
940 / 480 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
16.06.2014, 16:16 6
Цитата Сообщение от Donville Посмотреть сообщение
Сделать можно несколько функций для разных типов, а как с текстом в cout быть я понятия не имею.
С каким именно текстом?
0
0 / 0 / 1
Регистрация: 16.02.2014
Сообщений: 113
16.06.2014, 16:18  [ТС] 7
Тут такой
C++
1
cout << "\nEnter number (-100000 to 100000): ";
а тут такой
C++
1
cout << "\nEnter accuracy (1 to 5): ";
и там еще дюжина. Текст разный, а проверка, по сути, одинаковая везде.
0
Котовчанин
940 / 480 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
16.06.2014, 16:25 8
Функция принимает параметры low и upper. Вводите их при вызове функции.
0
0 / 0 / 1
Регистрация: 16.02.2014
Сообщений: 113
16.06.2014, 16:31  [ТС] 9
Цитата Сообщение от Тамика Посмотреть сообщение
"\nEnter accuracy ... ";
Вот этот текст в Вашем коде должен каждый раз менятся.
0
Котовчанин
940 / 480 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
16.06.2014, 16:40 10
Цитата Сообщение от Donville Посмотреть сообщение
Вот этот текст в Вашем коде должен каждый раз менятся.
Ааа... Нет, тут не подскажу. Сама не знаю. Ручками, наверное.
Или извратом - тоже передавать слово параметром в функцию.
0
0 / 0 / 1
Регистрация: 16.02.2014
Сообщений: 113
17.06.2014, 02:11  [ТС] 11
nmcf, выручай

Добавлено через 7 часов 23 минуты
Что, не знает никто?
0
5488 / 4883 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
17.06.2014, 03:21 12
Лучший ответ Сообщение было отмечено Donville как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template <class T>
void check_something(T low, T upper, string str)
{
    std::cout << str << low << " to " << upper <<"): ";
    T x;
    while (!(cin >> x) || x < low || x > upper || cin.get() != '\n')
    {
        std::cout<<"Input incorrect. Please, try again.\n";
        std::cin.clear(); 
        std::cin.sync();
        std::cout << str << low << " to " << upper <<"): ";
    }
}
C++
1
check_something (2, 6, "Enter accuracy (");
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2014, 03:21
Помогаю со студенческими работами здесь

Сделать так, чтоб в динамический массив записывались элементы, подходящие после проверки условия
Здравствуйте! Не подскажете, как сделать так,чтоб в динамический массив записывались...

как сделать грамотно чтоб все цвета описании и ссылки были видны?
как сделать грамотно чтоб все цвета описании и ссылки были видны? вот скрин примера

Как сделать массив чтоб в первой строке начиналось с 3его столбика и ещё как подровнять столбцы в массиве чтоб аккуратно
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Как при переустановке сделать так чтоб все установленные программы не пришлось переустанавливать?
Подскажите как при переустановке виндовс xp сделать так чтоб все установленные программы не...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru