25 / 9 / 8
Регистрация: 13.12.2015
Сообщений: 484
1

Как написать функцию чтобы можно было вводить только числа с клавиатуры?

17.11.2018, 23:27. Показов 1449. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как написать функцию чтобы можно было вводить только числа с клавиатуры?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.11.2018, 23:27
Ответы с готовыми решениями:

Написать процедуру, чтобы можно было вводить числа с клавиатуры и вывод выдавал с помощью Enter
нужно помочь написать процедуру,чтобы можно было вводить числа с клавиатуры и вывод выдавал с помощью Enter в калькулятор с должна...

Как сделать чтобы в Edit1 можно было вводить только цифры
Как сделать чтобы в Edit1 можно было вводить только цифры Зарание благодарю

Как сделать чтобы в textbox можно было вводить только буквы?
Подскажите, как сделать чтобы в textbox можно вводить только буквы?

5
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
17.11.2018, 23:39 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
27
28
29
30
31
32
#include <Windows.h>
 
LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    BOOL fEatKeystroke = FALSE;
 
    if (nCode == HC_ACTION)
    {
        switch (wParam)
        {
        case WM_KEYDOWN:
        case WM_SYSKEYDOWN:
        case WM_KEYUP:
        case WM_SYSKEYUP:
            PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT)lParam;
            fEatKeystroke = p->vkCode < '0' || p->vkCode > '9';
        }
    }
    return(fEatKeystroke ? 1 : CallNextHookEx(NULL, nCode, wParam, lParam));
}
 
int main() {
    HHOOK hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, 0, 0);
 
    MSG msg;
    while (!GetMessage(&msg, NULL, NULL, NULL)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    UnhookWindowsHookEx(hhkLowLevelKybd);
}
0
25 / 9 / 8
Регистрация: 13.12.2015
Сообщений: 484
18.11.2018, 00:41  [ТС] 3
у меня не работает
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
18.11.2018, 10:04 4
Николай16, а как она должна работать? У меня работает так, как я хотел, чтобы она работала в той среде, которая мне была нужна.
0
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
18.11.2018, 15:00 5
nonedark2008, как-то больно жестоко

Николай16, вот версия под винду с conio:
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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
size_t inp_digits(char *buf, size_t buflen) {
    if (buflen == 0)
        return 0;
    size_t len = 0;
    int ch;
    bool special = false;
    do {
        ch = _getch();
        if (special) {
            special = false;
            continue;
        }
        if (ch == 0 || ch == 0xe0) {
            special = true;
            continue;
        }
        if (ch >= '0' && ch <= '9') {
            _putch(ch);
            buf[len++] = (char)ch;
        }
    } while (len < buflen && ch != 0x0d);
    _putch(0x0d); _putch(0x0a);
    return len;
}
 
const size_t BUFLEN = 10;
 
int main() {
    char str[BUFLEN];
    size_t len;
    len = inp_digits(str, BUFLEN - 1);
    str[len] = 0;
    cout << "[" << str << "]" << endl;
}
Хотя решение nonedark2008 формально более правильное. Вы этого хотели? - получите!
0
25 / 9 / 8
Регистрация: 13.12.2015
Сообщений: 484
18.11.2018, 16:11  [ТС] 6
мне нужно что всё что не числа было сообщения cout << "что то не правильно ввели"
желательно всё в одной функции
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.11.2018, 16:11
Помогаю со студенческими работами здесь

Как сделать, чтобы можно было вводить только n=< 1000 чисел
#include &lt;iostream&gt; using namespace std; int main() { int k = 0;int n;int i=0; cin&gt;&gt;n; int a; for...

Как мне сделать так чтобы тут матрицу можно было вводить с клавиатуры?
using System; class SudokuSolver { private int grid; public SudokuSolver(String s) { grid = new...

Как сделать так чтобы в QLineEdit можно было вводить только буквы
Как сделать так чтобы в QLineEdit можно было вводить только буквы а все остальные символы(цыфры и тд запретить)?? И ограничить размер...

Как сделать чтобы в MaskedTextBox можно было вводить только цифры и буквы A-Fa-f
Как сделать чтобы в MaskedTextBox можно было вводить только цифры и буквы A-Fa-f, а именно 8 байт резделенные пробелами (например -...

Калькулятор: как сделать, чтобы можно было вводить только одну запятую?
День добрый. Помогите,пожалуйста,доработать калькулятор. Основная часть у меня уже сделана,но осталось 3 момента: 1) как сделать,чтобы...


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

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

Новые блоги и статьи
Java Micronaut в Docker: контейнеризация с Maven и Jib
Javaican 16.03.2025
Когда речь заходит о микросервисной архитектуре на Java, фреймворк Micronaut выделяется среди конкурентов. Он создан с учётом особенностей облачных сред и контейнеров, что делает его идеальным. . .
Управление зависимостями в Java: Сравнение Spring, Guice и Dagger 2
Javaican 16.03.2025
Инъекция зависимостей (Dependency Injection, DI) — один из фундаментальных паттернов проектирования, который радикально меняет подход к созданию гибких и тестируемых Java-приложений. Суть этого. . .
Apache Airflow для оркестрации и автоматизации рабочих процессов
Mr. Docker 16.03.2025
Управление сложными рабочими процессами — одна из главных головных болей инженеров данных и DevOps-специалистов. Представьте себе: каждый день нужно запускать десятки скриптов в определенной. . .
Оптимизация приложений Java для ARM
Javaican 16.03.2025
ARM-архитектура переживает настоящий бум популярности в технологическом мире. Когда-то воспринимаемая исключительно как решение для мобильных устройств и встраиваемых систем, сегодня она штурмует. . .
Управление состоянием в Vue 3 с Pinia и Composition API
Reangularity 16.03.2025
Когда я начал работать с Vue несколько лет назад, мне казалось достаточным использовать простую передачу данных через props и события между компонентами. Однако уже на среднем по сложности проекте. . .
Введение в DevSecOps: основные принципы и инструменты
Mr. Docker 16.03.2025
DevSecOps - это подход к разработке программного обеспечения, который объединяет в себе принципы разработки (Dev), безопасности (Sec) и эксплуатации (Ops). Суть подхода заключается в том, чтобы. . .
GitHub Actions vs Jenkins: Сравнение инструментов CI/CD
Mr. Docker 16.03.2025
В этой битве за эффективность и скорость выпуска программных продуктов ключевую роль играют специализированные инструменты. Два гиганта в этой области — GitHub Actions и Jenkins — предлагают разные. . .
Реактивное программировани­е с Kafka Stream и Spring WebFlux
Javaican 16.03.2025
Реактивное программирование – это программная парадигма, ориентированная на потоки данных и распространение изменений. Она позволяет выражать статические или динамические потоки данных и. . .
Простая нейросеть на КуМир: Учебное пособие по созданию и обучению нейронных сетей
EggHead 16.03.2025
Искусственные нейронные сети — удивительная технология, позволяющая компьютерам имитировать работу человеческого мозга. Если вы хотя бы немного интересуетесь современными технологиями, то наверняка. . .
Исполнитель Кузнечик в КуМир: Решение задач
EggHead 16.03.2025
Среди множества исполнителей в системе КуМир особое место занимает Кузнечик — простой, но невероятно полезный виртуальный персонаж, который перемещается по числовой прямой, выполняя ваши команды. На. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru