Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
supra7sky
15 / 15 / 5
Регистрация: 07.02.2013
Сообщений: 123
#1

Как контролировать правильность ввода? - C++

15.05.2013, 18:39. Просмотров 1223. Ответов 2
Метки нет (Все метки)

В переменные типов unsigned и double нужно записать численное значение. Какие есть способы контроля ввода для избежания ввода символов, слов и строк при этом?
http://www.cyberforum.ru/cpp-beginners/thread1753496.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2013, 18:39
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как контролировать правильность ввода? (C++):

Правильность ввода даты
Всем привет. Хотелось бы узнать способ проверки правильности формата введенной...

Проверка на правильность ввода значения.
Вот пишу так называемую "проверку на дурака". Столкнулся с проблемой, код: {...

Проверить массив на правильность ввода
Вроде бы были похожие темы, но так как я тупой, то не смог подобрать...

Проверка на правильность ввода с клавиатуры
Здравствуйте! задача: пользователь вводит с клавиатуры цифру, нужно проверить...

циклические алгоритмы (проверять правильность ввода данных)
С клавиатуры вводят дробные числа, до тех пор пока их сумма меньше К. Число К...

2
Ev[G]eN
iOS/Android Developer
Эксперт С++
5115 / 1553 / 950
Регистрация: 23.01.2011
Сообщений: 3,179
Завершенные тесты: 1
15.05.2013, 18:43 #2
Лучший ответ Сообщение было отмечено supra7sky как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
 
template <class Type>
Type inputCheck(Type &number)
{
    while (true) {
        std::cin >> number;
        if (std::cin.peek() == '\n' || std::cin.peek() == '.' || std::cin.peek() == ',') {
            std::cin.get();
            break;
        } else {
            std::cout << "Error! Please, try again!" << std::endl;
            std::cin.clear();
            std::cin.sync();
        }
    }
    return number;
}
 
int main()
{
    double number;
    number = inputCheck(number);
 
    return 0;
}
1
Olivеr
412 / 408 / 95
Регистрация: 06.10.2011
Сообщений: 832
15.05.2013, 19:06 #3
А я так делаю:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <limits>
 
using namespace std;
 
template <typename T>
T DefInput(istream &is)
{
    T val;
    is.clear();
    is >> val;
    while ( !is.good() ) {
        is.clear();
        is.ignore(numeric_limits<streamsize>::max(), '\n');
        is >> val;
    }
    return val;
}
 
int main()
{
    int val = DefInput<int>(cin);
    cout << val;
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2013, 19:06
Привет! Вот еще темы с решениями:

Проверить правильность ввода в строке типа char
Здравствуйте. Такой вопрос: Есть строковый массив и запись в него, но как при...

Проверить правильность ввода числа в двоичной системе счисления
Дано число в двоичной системе счисления. Проверить правильность ввода этого...

Как запустить процесс и контролировать его
Привет. Я новичок. Я хочу попробовать запускать внешнюю программу из своей...

Дан массив символов, содержащий число в двоичной системе счисления. Проверить правильность ввода этого числа
Дан массив символов, содержащий число в двоичной системе счисления. Проверить...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru