| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Римские цифры - как сделать фильтрацию ввода |
| Автор: KorroK 23.12.2008, 00:38 |
| Требуется сделать так, чтобы можно было ввести только римские цифры. Есть идея сделать посимвольный ввод с проверкой, вроде char r; do { r = _getch(); if (r == 'X' || r == 'V' || r == 'I') // и т.д. { std::cout << r; } } while(r != 13); Споткнулся на том, как: - веденые символы сливать в одну строку - если вводится в нижнем регистре переводить в верхний - как задействовать редактирование при вводе (Back Spaсe, например) |
| Автор: Dmi3ev 23.12.2008, 00:53 | ||
вот так можно |
| Автор: KorroK 23.12.2008, 01:34 |
| Спасибо, получилось А редактировать строку ввода ка-то можно? |
| Автор: Dmi3ev 23.12.2008, 01:42 |
| KorroK, ну ты сам смотри, ты нажимаешь enter для подтверждения ввода, как тут отредактируешь, редактировать можно пока enter не нажал, а так потом уже после ввода можно сделать редактирование... а так сам посуди... переменная уже десять раз изменилась, записалась в строку, а ты ее менять собрался... как ты это представляешь??? объясни???? |
| Автор: KorroK 23.12.2008, 01:48 |
| да, пожалуй, в консоли никак чет я туплю ) |
| Автор: Dmi3ev 23.12.2008, 01:53 |
| да нет, можно везде сделать что угодно... только нужна идея... я допустим не представляю... а ты, может, видишь ясно как это делать... только не знаешь как реализовать... но видно ты тоже не видишь... так что редактируй дальше в проге... вот выход... |
| Автор: SkyCoder 24.12.2008, 15:10 |
| Когда только учился, я на подобное заморачивался. Редактирование самостоятельно делается без проблемм, если делать на потоках с помощью getch и getchar. Иной вариант изучи printf() scanf(). Если делаешь с помощью гетчар и и гетчш смотри. гетчар и гетчш читают ОДИН символ из потока ввода программы.Знал. Каждая клавиша имеет свой код который отсылается в поток ввода программы. Знаешь. Функциональные клавиши и русские буквы отсылаются в поток ввода двумя символами. нулём(не путать с символом '0'==48) и собственно кодом. Знаешь. Что бы узнать коды клавиш, напиши софтину, которая выводила бы поток ввода, посимвольно, при том сам символ и его код. Пишешь обработчик вводимых символов - по коду определяешь что было нажато, производишь необходимые действия над вводимой строкой(переменной) и выводишь это действие на консоль(т.е. для тебя в поток вывода). Запомнился пример - что бы стереть один символ из консоли выводишь строку "\b \b" (бэкспейс, пробел,бэкспейс) |