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

Проверка на ввод только нескольких букв - C++

Восстановить пароль Регистрация
 
basic021
 Аватар для basic021
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 11
18.05.2014, 22:59     Проверка на ввод только нескольких букв #1
Проверка на ввод только цифр или букв, понятна, а вот собственно нужно ввести только три буквы по очереди типа R, Y, W в противном случае повтор. Не могу понять как выбрать именно эти буквы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
#include <conio.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (0, "");
    bool flag = false; 
    int q; 
    do {
    cin>>q; 
        if (cin.good())     // на неверный ввод 
        {
        cout<<"введена цифра"<<endl; // сообщаем об ошибке 
        cin.clear();                  // сбрасываем флаг ошибки 
        cin.ignore(255, '\n');        // очищаем буфер 
        }
        else flag = true;
    } while (!flag);
    cout<<"введен символ"<<endl;
            _getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.05.2014, 23:58     Проверка на ввод только нескольких букв #2
Что-то не пойму:
Цитата Сообщение от basic021 Посмотреть сообщение
if (cin.good()) * * // на неверный ввод
cin.good() и ввод неверный? Если cin.goog(), то зачем потом флаги сбрасывать и пр.?
basic021
 Аватар для basic021
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 11
19.05.2014, 00:17  [ТС]     Проверка на ввод только нескольких букв #3
оу, сори if (!cin.good()), но суть от этого не меняется, как записать проверку? Если R, Y, W, то true и дальше действие, если другие символы то false и возврат
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2014, 01:01     Проверка на ввод только нескольких букв #4
Цитата Сообщение от basic021 Посмотреть сообщение
но суть от этого не меняется
Ещё как меняется. Код покажите, который пробуете.
basic021
 Аватар для basic021
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 11
19.05.2014, 11:08  [ТС]     Проверка на ввод только нескольких букв #5
Пишу с нуля и это начало, я пример привел, проверки на букву или цифру, а вот проверка на определенную букву не могу понять как сделать. Код большой получится но принцип: просится ввод буквы R или W или Y, если введен символ не из этих трех то ошибка, если одна из этих букв то просится ввести цифру=>проверка на правильность цифра или буква, если буква то ошибка, если цифра то проходит дальше и так далее. Может через номер типа проверка на цифру от 0 до 9 if (q>47&&q<58) - ошибка.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2014, 11:26     Проверка на ввод только нескольких букв #6
Цитата Сообщение от basic021 Посмотреть сообщение
я пример привел, проверки на букву или цифру
Пример кривой, нормального примера я не увидел. Потом, чтобы получить конкретный ответ, нужно задать конкретный вопрос, которого я тоже не увидел. Задачу сформулируйте точнее. Зачем, вообще, ввод в int? Если вводится одна цифра (цифры - это 0-9) или одна буква, то вводите в char.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2014, 19:35     Проверка на ввод только нескольких букв
Еще ссылки по теме:

Можете объяснить, как работает следующая проверка (на ввод букв)? C++
Std:cin ввод нескольких значений C++
C++ Слова, состоящие только из гласных или только из согласных латинских букв

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

Или воспользуйтесь поиском по форуму:
basic021
 Аватар для basic021
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 11
27.05.2014, 19:35  [ТС]     Проверка на ввод только нескольких букв #7
Цитата Сообщение от basic021 Посмотреть сообщение
просится ввод буквы R или W или Y, если введен символ не из этих трех то ошибка, если одна из этих букв то просится ввести цифру
Вроде понятно. Но догадался сам через switch сделать. Получилось обычное окно типа: будете продолжать y (да) или n (нет). вот так выглядит кусок
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
    float x=0; 
    char t; 
m:  cout<<"Введите R, Y, W\n"; 
    cin>>t; 
    switch (t)
    {
    case 'R': 
        cout<<"введите значение для R :\n"; 
        cin>>x; 
        if (cin.good())
        {
n:          cout<<"Введите во что преобразовать Y, W\n"; 
            cin>>t; 
            switch (t)
            {
            case 'Y': 
                cout<<x<<"Y = "<<x(формула)<<" Y\n";
                goto m;
            case 'W': 
                cout<<x<<"W = "<<x(формула) <<" W\n";
                goto m;
            default : cout<<"Егор! Не верный ввод!\n";
            goto n; 
            }
Yandex
Объявления
27.05.2014, 19:35     Проверка на ввод только нескольких букв
Ответ Создать тему
Опции темы

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