Форум программистов, компьютерный форум CyberForum.ru

Игнорировать ввод букв - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Jesus_Christ
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 4
23.10.2012, 10:41     Игнорировать ввод букв #1
Скажите, как игнорировать ввод букв и вообще всех символов кроме 0-9 и точки, подобно проверке на корректность ввода данных. Какой-то цикл с getchar, putchar.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2012, 10:41     Игнорировать ввод букв
Посмотрите здесь:

Проверка на ввод букв C++
Ограничение на ввод букв! C++
Запрет на ввод букв в консоли на C++ C++
C++ ввод букв вместо цифр
C++ Ограничение на ввод букв и символов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Shurik70rus
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 3
23.10.2012, 13:47     Игнорировать ввод букв #2
если работаешь только с цифрами
C++
1
2
3
4
5
6
7
if(x<0||x>9)        // Проверка правильности ввода (1-9)
{
while(x<0||x>9)
{
cout << "Vvedite vernoe chislo:";
cin >> x;
}
D.E.S.P.E.R.O.
 Аватар для D.E.S.P.E.R.O.
9 / 9 / 0
Регистрация: 12.03.2009
Сообщений: 110
Завершенные тесты: 1
23.10.2012, 14:53     Игнорировать ввод букв #3
Одну скобку забыли закрыть. Да и лучше тогда использовать do while.
nightelf18
 Аватар для nightelf18
7 / 7 / 0
Регистрация: 06.10.2012
Сообщений: 19
23.10.2012, 15:01     Игнорировать ввод букв #4
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
#include <iostream>
#include <conio.h>
#include <iomanip>
#include <string>
using namespace std;
 
double Enter_double_number(int &); // прототип функции
 
void main(){
    int precision = 0;
    while(true){
        cout << setprecision (precision) << Enter_double_number(precision) << endl; // вывод на экран с заданной точностью
    }
}
 
double Enter_double_number(int &precision){ // если точность вывода на экран не нужна, то без параметров
    precision = 0; // точность вывода на экран(необязательно)
    double result = 0;
    int char_code;
    string buffer = "";
    bool dot = false;
    do{
        char_code = _getch();
        if(char_code > 47 && char_code < 58 || char_code == 46){
            if(char_code == 46 && dot == true) continue;
            if (char_code == 46) dot = true;
            buffer += (char)char_code;
            cout << (char)char_code;
            precision++; // точность вывода на экран(необязательно)
        }
    }
    while(char_code != 13);
    cout << endl;
    result = atof(buffer.c_str());
    return result;
}
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
23.10.2012, 15:08     Игнорировать ввод букв #5
C++
1
2
3
4
5
6
7
8
std::ios_base::io_state state;
do {
    std::cin.clear();
    std::cin.sync();
    int val = 0;
    std::cin >> val;
    state = std::cin.rdstate();
} while( state & std::ios::failbit );
Jesus_Christ
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 4
26.10.2012, 00:47  [ТС]     Игнорировать ввод букв #6
спасибо огромное) скажите, проверка происходит посимвольно? то есть чисто 43 например пройдет проверку?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2012, 10:40     Игнорировать ввод букв
Еще ссылки по теме:

C++ Запрет на ввод букв
C++ Ввод букв в тип int
C++ Ввод русских букв

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

Или воспользуйтесь поиском по форуму:
nightelf18
 Аватар для nightelf18
7 / 7 / 0
Регистрация: 06.10.2012
Сообщений: 19
26.10.2012, 10:40     Игнорировать ввод букв #7
В моей функции - посимвольно. Если цифра или точка (точка только один раз) - добавляем цифру в буфер для перевода и выводим на экран, если что-то другое - игнорируем.
Yandex
Объявления
26.10.2012, 10:40     Игнорировать ввод букв
Ответ Создать тему
Опции темы

Текущее время: 16:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru