|
50 / 4 / 0
Регистрация: 02.04.2011
Сообщений: 60
|
||||||
Ввод в консоле только чисел(запрет ввода других символов)19.05.2011, 16:39. Показов 15872. Ответов 26
Метки нет (Все метки)
В консольном варианте с предложением пользователю ввести фразу, содержащую и цифры и буквы, чтоб потом программа после ввода исключала буквы и выводила строку состоящую только из чисел
у меня вот какая зарисовка только че то не работает, а точнее работает если строка содержит сначала ряд чисел а после нее идут буквы. Воможно я сделал ошибку (я так думаю), в том что при обнаружении в строке буквы, все последующие символы тоже обнуляются. Подскажите в чем я не прав.
И второй вопрос как сделать так чтобы при вводе пользыватель не смог вводить буквы и другие символы.Слышал это можно реализовать по средствам функции getch. Заранее благодарю.
0
|
||||||
| 19.05.2011, 16:39 | |
|
Ответы с готовыми решениями:
26
Запрет ввода символов в консоли Запрет ввода символов в поле Edit
|
|
|
||
| 19.05.2011, 17:07 | ||
|
Вот, посмотри, там то, что тебе нужно средствами WinAPI. Там правда совсем сырой код, но суть должна быть понятна.
1
|
||
|
152 / 150 / 44
Регистрация: 09.02.2010
Сообщений: 407
|
||||||
| 19.05.2011, 17:37 | ||||||
|
Hotbed, вот реализация на Си:
1
|
||||||
|
50 / 4 / 0
Регистрация: 02.04.2011
Сообщений: 60
|
|
| 19.05.2011, 17:54 [ТС] | |
|
Спасибо Kastaneda, только сложновато для моего уровня, но ведь трудности это хорошо, буду изучать дескрипторы консоли и Ваш код а потом попробую разобраться почему Вы его назвали "сырым".
dampir_sanek Спасибо давно искал пример на fgets с такой потребностью как у меня. Буду разбиратся с кодом, если что задам вопрос.
0
|
|
|
152 / 150 / 44
Регистрация: 09.02.2010
Сообщений: 407
|
||||||
| 19.05.2011, 17:56 | ||||||
|
Переработал фунцию remove_alpha, ей не нужен параметр n:
1
|
||||||
|
50 / 4 / 0
Регистрация: 02.04.2011
Сообщений: 60
|
||
| 19.05.2011, 19:25 [ТС] | ||
|
Вопрос такой почему функция remove_alpha ни чего не возвращает (Void) ?
0
|
||
|
152 / 150 / 44
Регистрация: 09.02.2010
Сообщений: 407
|
|
| 19.05.2011, 20:47 | |
|
Hotbed, ага, правильно ошибку поправил. Потому что передается указатель на область памяти, и соответсвенно изменяется переданный массив, а не его копия. Поэтому возвращать ничего и не нужно.
0
|
|
|
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
|
|
| 20.05.2011, 10:43 | |
|
0
|
|
|
50 / 4 / 0
Регистрация: 02.04.2011
Сообщений: 60
|
||
| 20.05.2011, 10:55 [ТС] | ||
|
0
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 20.05.2011, 13:52 | ||||||
|
Hotbed, Библиотека библиотеке рознь) От буста или локи программа вообщем-то только выиграет.
0
|
||||||
|
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
|
||
| 20.05.2011, 14:05 | ||
0
|
||
|
50 / 4 / 0
Регистрация: 02.04.2011
Сообщений: 60
|
|||||
| 20.05.2011, 14:33 [ТС] | |||||
Например есть функция gets но не безопасна альтернатива безопасная fgets
0
|
|||||
|
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
|
|
| 20.05.2011, 14:36 | |
|
Ок. Вечером покажу, сейчас у меня нет ее с собой.
0
|
|
|
50 / 4 / 0
Регистрация: 02.04.2011
Сообщений: 60
|
|
| 20.05.2011, 18:29 [ТС] | |
|
ForEveR
У меня почему то не работает не выводится введенные символы . Пробегусь по коду поправьте меня пожалуйста, если я не прав в строке 9 задаем строку string в строке 10 помещаем символы со входного потока cin в string в строке 11 это я так понимаю функциональный объект удаляет один или несколько элементов строки не прошедших проверку по средствам isdigit Распишу как понимаю каждый объект (функцию) 11 строки string.erase() - функциональный объект (Удаление всех символов начиная от указанной позиции (конец понятен это string.end() а на счет от чего будет удалять не понятно) remove_if(string.begin(), string.end(), std::not1(std::ptr_fun(&isdigit)) - Удаление из указанного участка контейнера объектов выбранных функцией сравнения для - (std::not1(std::ptr_fun(&isdigit)) Не понятно почему обращается по адресу функционального адаптера ptr_fun по адресу (&isdigit). Почему здесь указывается адрес? string.begin() и string.end() являются интераторами? И как они работают, точнее на что указывают при работе?
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 20.05.2011, 19:51 | |
|
Hotbed, string::erase() функция класса. У нее есть перегруженные версии. Подробнее в гугле.
В данном случае используется версия от двух итераторов. Суть : удаляем из контейнера диапазон начиная от начального итератора, заканчивая конечным (не включая). Начальный итератор задается возвращаемым итератором функции std::remove_if(), которая принимает два итератора и функтор, в данном конкретном случае мы посылаем туда всю строку, от начала до конца, каждый символ строки посылается в функцию isdigit, на которую мы берем указатель (ptr_fun - синтаксический сахар, ибо not1 (адаптер отрицания для унарного функтора) - принимает исключительно функтор (объект структуры/класса с оператором () )). Суть : проходим по каждому элементу - смотрим что вернул isdigit, если вернул false - удаляем элемент (точнее сдвигаем в конец уже мусор). std::remove_if() возвращает итератор на начало удаленной последовательности (то есть на первый элемент мусора сдвинутого в конец). string::begin(), string::end() - функции. Возвращают итератор на первый элемент и на элемент следующий за последним соответственно.
1
|
|
|
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
|
||||||
| 20.05.2011, 22:50 | ||||||
|
Вот пример кода, использующий байду, о кот. я говорил:
Недостатки: только под винду без исходного кода На счет безопасности, вроде все безопасно. Там еще есть потоки ввода-вывода на базе stl, но ими слишком сложно пользоваться.
1
|
||||||
|
50 / 4 / 0
Регистрация: 02.04.2011
Сообщений: 60
|
||||||
| 22.05.2011, 10:42 [ТС] | ||||||
|
Тут покумекал над моим изначальным кодом в шапке темы и кое что придумал. Для таких чайников как я доступно до безобразия. Спасибо всем кто дал темы для размышления. В будущем буду задавать вопросы, если будет что то не понятно.
0
|
||||||
|
152 / 150 / 44
Регистрация: 09.02.2010
Сообщений: 407
|
||||||
| 22.05.2011, 14:49 | ||||||
|
Hotbed, забыл очистить память
1
|
||||||
|
50 / 4 / 0
Регистрация: 02.04.2011
Сообщений: 60
|
||
| 22.05.2011, 15:50 [ТС] | ||
|
0
|
||
| 22.05.2011, 15:50 | |
|
Помогаю со студенческими работами здесь
20
Запрет ввода любых символов кроме цифр в консоли Ограничение на ввод символов (разрешить ввод только цифр) Запрет ввода чисел Запрет ввода только минуса в ячейке StringGrid, и запрет на ввод минуса между цифрами Ввод только определенных символов, удаление запрещенных символов из ячейки ввода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|