Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2008, 15:28   #1
Kortes
 
Регистрация: 21.12.2008
Сообщений: 9
По умолчанию Контроль ввода - римские цифры

Уважаемые! Что-то меня заклинило )))
Подскажите, как реализовать в консоли ввод римских цифр с проверкой, т.е. чтобы ни какие другие символы ввести было нельзя.
Kortes вне форума Ответить с цитированием
Старый 21.12.2008, 15:33   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Задаете так называемую "Базу знаний". Тоесть массив, в котором храняться все римские цифры. Потом когда вводите символ, просто проверяете по массиву, есть ли совпадение. Если есть, значит правильно ввели, если нет - сообщение о том, что нада вводить римские цифры и повторное приглашение к вводу.
MaTBeu вне форума Ответить с цитированием
Старый 21.12.2008, 16:09   #3
Kortes
 
Регистрация: 21.12.2008
Сообщений: 9
По умолчанию

Где-нибудь можно посомтреть пример кода?
Kortes вне форума Ответить с цитированием
Старый 21.12.2008, 16:18   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Вы не знаете как работать с массивом? Или не знаете, как сравнивать в цикле значение с каждым элементом массива?
MaTBeu вне форума Ответить с цитированием
Старый 21.12.2008, 16:40   #5
Kortes
 
Регистрация: 21.12.2008
Сообщений: 9
По умолчанию

Прошу прощения за тупость, просто опыта с Си мало

не совсем представляю перехват вводимого символа
Kortes вне форума Ответить с цитированием
Старый 21.12.2008, 17:16   #6
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Насчет перехвата - вы не туда попали - вам в раздел WinAPI
MaTBeu вне форума Ответить с цитированием
Старый 21.12.2008, 18:59   #7
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

getch, если мне не изменяет память, запрашивает символ с клавы и не выводит на экран. Соответственно:
c = getch();
if (c - римская цифра)
вывести символ на экран
pu4koff вне форума Ответить с цитированием
Старый 21.12.2008, 19:32   #8
Goblin
Форумчанин
 
Регистрация: 24.11.2007
Сообщений: 196
По умолчанию

Цитата:
getch, если мне не изменяет память, запрашивает символ с клавы и не выводит на экран. Соответственно:
c = getch();
Кажется все таки изменяет. Нет такой функции в стандартной библиотеке.
Goblin вне форума Ответить с цитированием
Старый 21.12.2008, 20:30   #9
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Так пойдёт?
Код:
#include <conio.h>
#include <iostream>
...
char c;
do 
{
	c = getch();
	if (c == 'I' ||
	    c == 'V' ||
	    c == 'D')
	{
		cout << c;
	}
} while(c != 13);
pu4koff вне форума Ответить с цитированием
Старый 21.12.2008, 20:46   #10
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

2Goblin
У Майкрософта нету, а вот у Борланда есть.
MaTBeu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
$I: автоматический контроль операций ввода-вывода. Викдон Паскаль, Turbo Pascal, PascalABC.NET 10 21.11.2008 20:45
Римские цифры Sergeevich Помощь студентам 2 26.05.2008 18:21
Контроль ввода данных в классе oleg kutkov Общие вопросы C/C++ 1 14.04.2008 22:19