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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Jesus_Christ
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 4
#1

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

23.10.2012, 10:41. Просмотров 1395. Ответов 6
Метки нет (Все метки)

Скажите, как игнорировать ввод букв и вообще всех символов кроме 0-9 и точки, подобно проверке на корректность ввода данных. Какой-то цикл с getchar, putchar.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2012, 10:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Игнорировать ввод букв (C++):

Проверка на ввод букв - C++
В общем такая проблемка Задача: сделать программу для расчета периметра, площади, медианы, бисектрисы и высоты. # include <stdio.h>; ...

Ввод русских букв - C++
Не могу понять почему при вводе русских символом программа начинает ругаться. Можно ли как-нибудь решить эту проблему? #include...

Ограничение на ввод букв! - C++
Приветствую Вас друзья! В общем такая проблема: Нужно выполнить проверку на ввод только цифр, если вместо цифры введена буква запросить...

Запрет на ввод букв - C++
Помогите пожалуйста сделать запрет на ввод букв: #include "stdafx.h" #include <cstdlib> #include <iostream> #include...

Проверка на ввод букв - C++
Как в данной программе реализовать проверку на ввод букв.:umbrage: #include <iostream> #include <iomanip> using namespace std; ...

ввод букв вместо цифр - 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.
9 / 9 / 0
Регистрация: 12.03.2009
Сообщений: 110
Завершенные тесты: 1
23.10.2012, 14:53 #3
Одну скобку забыли закрыть. Да и лучше тогда использовать do while.
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
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 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 например пройдет проверку?
nightelf18
7 / 7 / 0
Регистрация: 06.10.2012
Сообщений: 19
26.10.2012, 10:40 #7
В моей функции - посимвольно. Если цифра или точка (точка только один раз) - добавляем цифру в буфер для перевода и выводим на экран, если что-то другое - игнорируем.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2012, 10:40
Привет! Вот еще темы с ответами:

Ввод букв в тип int - C++
Например в этой программе #include &lt;iostream&gt; #include &lt;windows.h&gt; //#include &lt;string&gt; //#include &lt;vector&gt; //#include...

Запрет на ввод букв в консоли на C++ - C++
Здравствуйте, сижу за С++ не много, так что не очень в нем разбираюсь. Столкнулся вот с проблемой запрета букв, пишу, что то типа...

Ограничение на ввод букв и символов - C++
Подскажите пожалуйста, как можно реализовать в консоле ограничение на ввод букв и символов, т.е. требуется чтобы пользователь мог вводить...

Запрет на ввод букв/цифр - C++
#include &lt;stdafx.h&gt; #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt; #include &lt;iomanip&gt; #include...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.10.2012, 10:40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru