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

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

10.05.2019, 19:43. Показов 1602. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.05.2019, 19:43
Ответы с готовыми решениями:

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

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

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

4
 Аватар для SomniPhobia
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,407
10.05.2019, 19:56
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"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
10.05.2019, 20:12
Цитата Сообщение от alina161 Посмотреть сообщение
не воспринимает русский
где русский? вообще лучше это через wchar_t и iswdigit делать.
0
0 / 0 / 1
Регистрация: 11.11.2016
Сообщений: 96
10.05.2019, 20:48  [ТС]
Если ввести латиицу, то он нормально реагирует и выдаёт ошибку, если вводить русские символы, то вылетает прога
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
10.05.2019, 21:16
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.05.2019, 21:16
Помогаю со студенческими работами здесь

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

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

isdigit() не понимаю
Здрасти всем! Не могу понять, почему isdigit() неверно себя ведет. Точнее абсолютно наоборот. #include &lt;iostream&gt; const...

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru