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

Функция для isdigit()

10.05.2019, 19:43. Показов 862. Ответов 4

Как проверить флоат? И почему isdigit() не воспринимает русский, как сделать, чтобы воспринимал?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
float   age;
 
cout << "Введіть вік, зріст та вагу учасника\n";
 
        do
        {
            cout << "Вік: ";
            cin>>age;
 
            if (!isdigit(age))
            {
                system("cls");
                cout << " Некорректний ввід \n";
            }
        } while (!isdigit(age));
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2019, 19:43
Ответы с готовыми решениями:

Функция int isdigit(int С)
Чот мучился с ней так и не сообразил как организовать решение задачи: с бинарного файла считываются...

Не работает функция isdigit
Приветствую! возник такой вопрос: может ли функция isdigit() работать без создания своей функции?...

Можно ли применять встроенные функции isdigit и isalpha для структур?
Есть задание с структурами, надо вписать: 1) предмет 2) преподавателя 3) номер группы(цифра) 4)...

isdigit
Возник вопрос по фукции isdigit в описании написано int isdigit(int c); и выходит что в...

4
593 / 429 / 135
Регистрация: 22.11.2017
Сообщений: 1,203
10.05.2019, 19:56 2
alina161, привет!
Как вариант.

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
#include <iostream>
#include <string>
#include <sstream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    float age;
 
    cout << "Введіть вік, зріст та вагу учасника\n";
 
    for (;;)
    {
        string line;
        getline(cin, line);
        istringstream iss(line);
        iss >> age;
        ostringstream oss;
        oss << age;
        if (oss.str() != line)
        {
            cout << " Некорректний ввід \n";
            continue;
        }
        break;
    }
 
    cout << "Принято float число = " << age << endl;
 
    system("pause");
    return 0;
}
1
"C with Classes"
1590 / 1369 / 512
Регистрация: 16.08.2014
Сообщений: 5,697
Записей в блоге: 1
10.05.2019, 20:12 3
Цитата Сообщение от alina161 Посмотреть сообщение
не воспринимает русский
где русский? вообще лучше это через wchar_t и iswdigit делать.
0
0 / 0 / 1
Регистрация: 11.11.2016
Сообщений: 96
10.05.2019, 20:48  [ТС] 4
Если ввести латиицу, то он нормально реагирует и выдаёт ошибку, если вводить русские символы, то вылетает прога
0
7421 / 5016 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
10.05.2019, 21:16 5
alina161, сначала задайте себе вопрос что Вы собрались проверять с помощью isdigit - даже по названию функции видно, что она проверяет не числа, а цифры (если конечно возраст участников не от года до девяти )

float забудьте, используйте double

посмотрите, может такой вариант подойдёт (отлавливает не всё, но возможно Вас устроит)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <limits>
using namespace std;
 
int main()
{
    double n;
    cout << "n=";
    while (!(cin >> n))
    {
        cout << "Enter error!!! Repeat please...\n";
        cout << "n=";
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
    }
    
    cout << n*2. << "\n"; // для проверки
    
system("pause");
return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.05.2019, 21:16
Помогаю со студенческими работами здесь

isdigit()
Здравствуйте. Почему не работает isdigit() в этом примере? Пробовал разные варианты. Задача в том...

isdigit() не понимаю
Здрасти всем! Не могу понять, почему isdigit() неверно себя ведет. Точнее абсолютно наоборот. ...

Function IsDigit()
Подскажите пожалуйста, как сделать так, чтобы я задавал число и он работал: c = int(input())...

isdigit() и кириллица
При этом коде если ввести символ из кириллицы выдаст ошибку. Как от неё избавиться? int main()...


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

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

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