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

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

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

Студворк — интернет-сервис помощи студентам
Как написать функцию чтобы можно было вводить только числа с клавиатуры?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2018, 23:27
Ответы с готовыми решениями:

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

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

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

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

5
1392 / 1021 / 325
Регистрация: 28.07.2012
Сообщений: 2,810
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
1392 / 1021 / 325
Регистрация: 28.07.2012
Сообщений: 2,810
18.11.2018, 10:04 4
Николай16, а как она должна работать? У меня работает так, как я хотел, чтобы она работала в той среде, которая мне была нужна.
0
Мозгоправ
1741 / 1035 / 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2018, 16:11
Помогаю со студенческими работами здесь

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

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

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

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

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

Как сделать чтобы в ячейку StrigGrid можно было вводить только 4 знака?
И такой вопрос, не относящийся к теме вот у меня StrigGrid, как сделать чтобы в ячейку можно было...


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

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

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