Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/34: Рейтинг темы: голосов - 34, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 84
1

Ограничение на ввод символов (разрешить ввод только цифр)

02.03.2016, 17:19. Показов 6340. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток!

Я начал изучать С++ и у меня возник такой вопрос:
Как ограничить ввод символов (разрешить ввод только цифр)?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <locale.h>
#include <cctype>
 
using namespace std;
 
int main()
{
    float num;
    cout << "Vvedite:" << endl;
    cin >> num;
    if (???????????)
    {
        cout << "Ne pravilno" << endl;
    }
 
    return 0;
}
Буду очень благодарен за помощь!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2016, 17:19
Ответы с готовыми решениями:

Ограничение на ввод только цифр
Друзья, У тут меня проблемка возникла, помогите, пожалуйста ;) Коротко: я новичок, и я пишу...

Как разрешить ввод только чисел типа int?
Доброго времени суток. Подскажите, пожалуйста, как разрешить ввод только чисел типа int....

Разрешить ввод только цифр
В процессе ввода должна осуществляться проверка корректности данных. То есть если в строчке телефон...

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

7
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508
02.03.2016, 17:27 2
isdigit( )

Добавлено через 40 секунд
isdigit( ) - возвращает значение Истина, если аргументом функции является цифра от 0 до 9; во всех остальных случаях возвращает Ложь.

Добавлено через 34 секунды
библиотека - ctype.h
0
88 / 88 / 80
Регистрация: 25.08.2013
Сообщений: 337
02.03.2016, 17:28 3
Или так)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <locale.h>
#include <cctype>
 
using namespace std;
 
int main()
{
    float num;
    cout << "Vvedite:" << endl;
    for (;;)                            //бесконечный цикл
    {
        if (cin >> num)
            break;                      //выход из ближайшего цикла
        cout << "Ne pravilno" << endl;
        cin.clear();                    //снятие флага ошибки ввода cin
        while (cin.get() != '\n');      //очистка символов из потока ввода
    }
    return 0;
}
0
BrainOverflow
126 / 130 / 64
Регистрация: 31.03.2013
Сообщений: 556
02.03.2016, 17:28 4
Bullet_VIP, цифр в смысле от 0 до 9 или вообще всех чисел?
0
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 84
02.03.2016, 17:52  [ТС] 5
Всех цифр

Добавлено через 1 минуту
Не работает

Добавлено через 54 секунды
MuslimPalit, Не работает да и не подходит эта функция
0
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 84
02.03.2016, 17:54  [ТС] 6
yrceus, вечный цикл пропускает ввод, когда сначала ввести число, а потом символы
Миниатюры
Ограничение на ввод символов (разрешить ввод только цифр)  
0
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
02.03.2016, 17:57 7
C++
1
2
3
4
5
6
7
8
// в строке ввода только целое число, перед которым могут быть пробельные символы, + или -.
int a;
while (!(cin >> a) || (cin.peek() != '\n'))
{
    cin.clear();
    while (cin.get() != '\n');
    cout << "Input error! Retry input" << endl;
}
1
88 / 88 / 80
Регистрация: 25.08.2013
Сообщений: 337
02.03.2016, 18:07 8
Bullet_VIP, Ну допилили бы, смысл то ясен) По логике примера он и не должен, ввел число, cin его присвоил переменной и все, выход) А если не число, крутим без конца цикл.
1
02.03.2016, 18:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2016, 18:07
Помогаю со студенческими работами здесь

Разрешить ввод в TextBox только цифр
у меня есть код ввода только цифр, при вводе буквы выходит ошибка, как сделать, чтобы выходило...

Разрешить ввод только цифр и запятой
if (e.KeyChar &lt; 48 || e.KeyChar &gt; 57 &amp;&amp; e.KeyChar == 44) { e.Handled...

Разрешить ввод в текстбокс только цифр
Как можно сделать что-бы в текст бокс вводились только цыфры?, а лучше какую-нибудь маску ввода...

Разрешить ввод в Еdit только цифр
помогите сделать коректность ввода в Edit (вводить можно толькочисла , в случае ввода букв...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru