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

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

Восстановить пароль Регистрация
 
supra7sky
 Аватар для supra7sky
15 / 15 / 1
Регистрация: 07.02.2013
Сообщений: 123
15.05.2013, 18:39     Как контролировать правильность ввода? #1
В переменные типов unsigned и double нужно записать численное значение. Какие есть способы контроля ввода для избежания ввода символов, слов и строк при этом?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2013, 18:39     Как контролировать правильность ввода?
Посмотрите здесь:

C++ Как можно бы создать метод для ввода размерности (т.е. для ввода private переменных n,m)?
Проверка на правильность ввода значения. C++
C++ Модификаторы файлового ввода в С++ как в С
Проверка на правильность ввода с клавиатуры C++
C++ Как перегрузить оператор ввода?
циклические алгоритмы (проверять правильность ввода данных) C++
C++ Правильность ввода даты
C++ Как защититься от неправильного ввода

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
15.05.2013, 18:43     Как контролировать правильность ввода? #2
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;
}
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
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;
}
Yandex
Объявления
15.05.2013, 19:06     Как контролировать правильность ввода?
Ответ Создать тему
Опции темы

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