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

Реализация запрета ввода любых символов кроме цифр в консольном приложении

21.05.2013, 11:31. Показов 2443. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста реализовать запрет ввода любых символов кроме цифр в консольном приложении, считающем корни квадратного уравнения. Тоесть при вводе любого символа отличного от цифры должно появляться приглашение повторить ввод переменной
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include<iostream.h>
#include<conio.h>
#include<locale.h>
#include<iomanip.h>
#include "math.h" 
#include <string.h>
 
using namespace std; 
 
int main()
{ 
     setlocale(LC_CTYPE,"Russian"); //Установка русской локали для вывода сообщений
    float a,b,c,d,x,x1,x2; 
    char ans ;
    ans='y';
         while (ans=='y')
        {
        cout<<"Введите значение переменной a\n";
        cin >> a;
            while (a==0)
            {
            cout<<"Нельзя вводить число равное 0,повторите ввод.\n"<<endl;
            cin>>a;
            }
        cout<<"Введите значение переменной b\n";
        cin >> b;
        cout<<"Введите значение переменной c\n";
        cin >> c;
        d=(b*b)-((4*a)*c); 
        cout<<"Дискриминант равен\n"<<d<<endl; 
        if (d < 0)
        cout << "Решений нет,при дискриминанте меньше 0" << endl; 
        if (d == 0)
        { 
            x=(-b)/(2*a); 
            cout << "Один корень,при дискриминанте равном 0,x=" << x << endl; 
        } 
            if (d > 0)
                { 
                    x1=((-b)+sqrt(d))/(2*a); 
                    x2=((-b)-sqrt(d))/(2*a); 
                    cout << "Первый корень,x1=" << x1 << "\n" << "Второй корень,x2=" << x2 << endl;
                }
                    cout<<"Вы хотите продолжить выполнение программы(y-да)?\n";
                    cin>>ans;
        }
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2013, 11:31
Ответы с готовыми решениями:

Запрет ввода любых символов кроме цифр в консоли
Ребята подскажите пожалуйста можно ли как-то разрешать ввод в консоль только цифр. Я делаю проверку...

Запрет на ввод любых символов, кроме цифр
Есть ли в свойствах Edit нечто такое, что разрешит вводить в нём только цифры? И если нету, то...

При вводе любых символов, кроме цифр, выдавать сообщение об ошибке
Есть форма. В ней вводят R1(TextBox1),R2(TextBox2). Нужно, чтобы при вводе любых символов, кроме...

Запрет ввода символов кроме цифр в TextBox
как запретить ввод букв и остальных символов кроме цифр в textbox'e

3
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.05.2013, 13:59 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
cout << "Enter the number: " << endl;
int i;
while (true)
{
    cin >> i;
    if (!cin)
    {
          cin.clear();
          while (cin.get() != '\n');
          cout << "Error! Retry input\n";
          cout << "Enter the number: " << endl;
    }
    else break;
}
0
Заблокирован
Автор FAQ
21.05.2013, 14:01 3
pashka-chel, читай чаще блоги и вопросы будут отпадать сами
Безопасный ввод через функцию-шаблон
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <cmath>
#include <clocale>
#include <iostream>
using namespace std; 
 
//Îáúÿâëÿåì ôóíêöèþ øàáëîí
//Ôóíêöèÿ âåðí¸ò ÈÑÒÈÍÀ åñëè ïàðàìåòð val áûë âåäåí êîððåêòíî
//â ïðîòèâíîì ñëó÷àå âîçâðàò îò ôóíêöèè ËÎÆÜ
template <class T>
bool SafeInput
(
    const wchar_t * msg,//ñîîáùåíèå êîòîðîå áóäåò ñîïóòñòâîâàòü ââîäó
    T &val
)
{
    bool bOk = true;//Ôëàã óñïåøíîãî ââîäà
    wcout<<msg;//Âûâîä íà ýêðàí ñîïóòñòâóþùåãî ñîîáùåíèÿ
    //Ïðîâåðêà íà êîððåêòíûé ââîä äîëæíà ñîäåðæàòü íå òîëüêî if(!(cin>>val) )
    //íî è ïðîâåðêó íà òî ÷òî ñòðîêà áîëåå íå ñîäåðæèò ñèìâîëîâ ò.å cin.get() != '\n'
    if(!(cin>>val) || cin.get() != '\n')
        bOk = false;
    if(!bOk)
        cin.clear();//Ñáðîñ ôëàãîâ îøèáîê
        cin.sync();//Î÷èñòêà áóôåðà ââîäà
    return bOk;
}
 
 
int main()
{ 
    setlocale(LC_CTYPE,".866"); //Óñòàíîâêà ðóññêîé ëîêàëè äëÿ âûâîäà ñîîáùåíèé
    double a, b, c, d; 
    char ans = 'y';
    bool bWork = true;
    while( bWork )
    {
        if(!SafeInput(L"Ââåäèòå çíà÷åíèå ïåðåìåííîé a : ", a))
            wcout<<L"Íåêîððåêòíûé ââîä ïîëüçîâàòåëÿ"<<endl;
        else
        if(a==0)
            wcout<<L"Íåëüçÿ ââîäèòü ÷èñëî ðàâíîå 0, ïîâòîðèòå ââîä"<<endl;
        else
        if(!SafeInput(L"Ââåäèòå çíà÷åíèå ïåðåìåííîé b : ", b))
            wcout<<L"Íåêîððåêòíûé ââîä ïîëüçîâàòåëÿ"<<endl;
        else
        if(!SafeInput(L"Ââåäèòå çíà÷åíèå ïåðåìåííîé c : ", c))
            wcout<<L"Íåêîððåêòíûé ââîä ïîëüçîâàòåëÿ"<<endl;
        else
        { 
            wcout<<L"Äèñêðèìèíàíò ðàâåí D = "<<(d = pow(b,2.0) - 4*a*c)<<endl; 
            if (d < 0)
                wcout<< L"Íåò äåéñòâèòåëüíûõ ðåøåíèé D < 0"<<endl;
            else
            if (d == 0)
                wcout <<L"Îäèí êîðåíü D == 0, x = " <<(-b/(2*a))<<endl;
            else
            if (d > 0)
            { 
                wcout<<L"Êîðíåé äâà  D > 0 :"<<endl;
                wcout<<L"1-ûé êîðåíü, x1 = "<<((-b) - sqrt(d))/(2*a)<<endl;
                wcout<<L"2-îé êîðåíü, x2 = "<<((-b) + sqrt(d))/(2*a)<<endl;
            }
        }
        if(!SafeInput(L"Âû õîòèòå ïðîäîëæèòü âûïîëíåíèå ïðîãðàììû?(Y - äà)\n>", ans))
            wcout<<L"Íåêîððåêòíûé ââîä ïîëüçîâàòåëÿ"<<endl;
        else
        if(ans != 'Y' && ans != 'y')
            bWork = false;
            
    }
    return 0;
}
Миниатюры
Реализация запрета ввода любых символов кроме цифр в консольном приложении  
0
Заблокирован
Автор FAQ
21.05.2013, 14:03 4
PS:
Цитата Сообщение от pashka-chel Посмотреть сообщение
cout << "Решений нет,при дискриминанте меньше 0"
- правда?
Нет решений в действительных числах, а вот в комплексных числах есть решение у всего.
решение квадратного уравнения С++
0
21.05.2013, 14:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2013, 14:03
Помогаю со студенческими работами здесь

Запрет ввода всех символов кроме цифр и запятой
Здравствуйте как можно сделать так чтобы в textBox можно было бы вводить с клавиатуры лишь цифры и...

Как запретить ввод букв и других символов кроме цифр в поле ввода (Entry)
Всем доброго времени суток. Нужна помощь!!! Пишу программу и она должна проводить математические...

Язык ввода в консольном приложении
Подскажите, как можно установить язык ввода в консольном приложении. Я делаю так, но не катит: ...

Запрет ввода в консольном приложении
Здравствуйте! Мне необходимо осуществить следующую задачу: 1) Запретить пользователю ввод...


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

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