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

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

Войти
Регистрация
Восстановить пароль
 
basic021
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 11
#1

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

18.05.2014, 22:59. Просмотров 880. Ответов 6
Метки нет (Все метки)

Проверка на ввод только цифр или букв, понятна, а вот собственно нужно ввести только три буквы по очереди типа 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
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.05.2014, 23:58     Проверка на ввод только нескольких букв #2
Что-то не пойму:
Цитата Сообщение от basic021 Посмотреть сообщение
if (cin.good()) * * // на неверный ввод
cin.good() и ввод неверный? Если cin.goog(), то зачем потом флаги сбрасывать и пр.?
basic021
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 11
19.05.2014, 00:17  [ТС]     Проверка на ввод только нескольких букв #3
оу, сори if (!cin.good()), но суть от этого не меняется, как записать проверку? Если R, Y, W, то true и дальше действие, если другие символы то false и возврат
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2014, 01:01     Проверка на ввод только нескольких букв #4
Цитата Сообщение от 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
5416 / 4812 / 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++ Слова, состоящие только из гласных или только из согласных латинских букв
Определить, каких слов в тексте больше: состоящих только из букв, или только из цифр C++
C++ Ввод нескольких структур
Проверка нескольких условий C++
Ввод нескольких значений, поток cin C++

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

Или воспользуйтесь поиском по форуму:
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     Проверка на ввод только нескольких букв
Ответ Создать тему
Опции темы

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