Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.65/79: Рейтинг темы: голосов - 79, средняя оценка - 4.65
 Аватар для Hotbed
50 / 4 / 0
Регистрация: 02.04.2011
Сообщений: 60

Ввод в консоле только чисел(запрет ввода других символов)

19.05.2011, 16:39. Показов 15942. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В консольном варианте с предложением пользователю ввести фразу, содержащую и цифры и буквы, чтоб потом программа после ввода исключала буквы и выводила строку состоящую только из чисел

у меня вот какая зарисовка только че то не работает, а точнее работает если строка содержит сначала ряд чисел а после нее идут буквы. Воможно я сделал ошибку (я так думаю), в том что при обнаружении в строке буквы, все последующие символы тоже обнуляются. Подскажите в чем я не прав.


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>
# include <cstdio>
# include <cstring>
using namespace std;
int main()
{
char *A; A=new char[20];
 
gets(A);
int a = strlen(A);
//cout << " \n"<< a ;
 
    for (int i=0; i<a;i++)
    {if (*(A+i)>'9')
    {*(A+i)=0x00;continue;}
    if (*(A+i)<'0')
    {*(A+i)=0x00;continue;}}
int c = strlen(A);
//cout << " \n"<< c ;
for (int t=0; t<c;t++)
cout << "\n" << *(A+t);
cin.get();
}
Может я не правильно заменяю символы может в *(A+i)=0x00; поставить что нибудь другое? Подскажите пожалуйста.

И второй вопрос как сделать так чтобы при вводе пользыватель не смог вводить буквы и другие символы.Слышал это можно реализовать по средствам функции getch. Заранее благодарю.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.05.2011, 16:39
Ответы с готовыми решениями:

Запрет ввода символов в консоли
моя консольная программа имеет очень много вводов от пользователя, через контекстное меню (нажмите 1 для того, 2 для другого) чтоб не...

Запрет ввода символов в поле Edit
Как запретить нажатие и вставку из буфера всех символов, кроме нужных мне, к примеру разрешить вводить в поле только цифры? И еще 2-ой...

Запрет ввода символов, отличных от цифр
Нужно заполнить двумерный массив только числами. Как это реализовать?

26
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
22.05.2011, 15:58
Студворк — интернет-сервис помощи студентам
Hotbed, И вот на кой здесь юзать define...
0
 Аватар для Hotbed
50 / 4 / 0
Регистрация: 02.04.2011
Сообщений: 60
22.05.2011, 16:07  [ТС]
ForEveR,
А чем это отличается # define k 80 от const int k=80 ; ? Тем что здесь 1 это С а 2 это с++
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
22.05.2011, 16:40
Hotbed, Тем что первое это макрос. У него нет типа. Он не знает о простраствах имен. И прочие плохие вещи. А второе - константа определенного типа.
0
 Аватар для Hotbed
50 / 4 / 0
Регистрация: 02.04.2011
Сообщений: 60
22.05.2011, 16:55  [ТС]
ForEveR, А как допустим задать константу (при необходимости ее использования в Си ) не используя #define ? Конечно делаю больший уклон при изучении на C++, но все таки надо знать ведь Си основа С++. И при учебе в ВУЗе (в будущем) может пригодится знание синтаксиса Си
А почему о using namespace
Он не знает о простраствах имен. И прочие плохие вещи.
Вы отзываетесь так? Чем плохо его использование? При написании кода Вы его я заметил не используете почему?
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
22.05.2011, 17:01
Цитата Сообщение от Hotbed Посмотреть сообщение
А как допустим задать константу (при необходимости ее использования в Си ) не используя #define ?
Есть такая вещь, называется "финт с перечислением" (даже есть аналогичный английский термин).
C
1
2
enum{myconstant=10};
int arrray[myconstant];
По одному из источников он (финт) родился когда в классах еще нельзя было использовать статичные константы, и программеры придумали такой вот хитрый ход))
2
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
22.05.2011, 17:02
Hotbed, Я просто не люблю явное использование using namespace. Хотя иногда использую. Но не std.

А #define пофигу на пространства имен. Абсолютно.
1
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
22.05.2011, 22:29
Hotbed, пространства имен придумали, не для того что бы программисту надо было каждый раз писать using namespace, да еще и глобально.

Добавлено через 1 минуту
#define это жуть полнейшая, которая портит весь язык c++, но от которой никуда пока не деться. Будем надеяться на стандарт 2x.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.05.2011, 22:29
Помогаю со студенческими работами здесь

Запрет ввода любых символов кроме цифр в консоли
Ребята подскажите пожалуйста можно ли как-то разрешать ввод в консоль только цифр. Я делаю проверку или с помощью isdigit() или через...

Ограничение на ввод символов (разрешить ввод только цифр)
Всем доброго времени суток! Я начал изучать С++ и у меня возник такой вопрос: Как ограничить ввод символов (разрешить ввод только...

Запрет ввода чисел
необходимо в калькуляторе сделать запрет ввода числа, через кеу не получается.вот полный код #include &quot;stdafx.h&quot; #include...

Запрет ввода только минуса в ячейке StringGrid, и запрет на ввод минуса между цифрами
Ребята,очень нужна ваша помощь!Нужно сделать запрет ввода ТОЛЬКО минуса в ячейке и запрет на ввод минуса между цифрами, чтобы не получилось...

Ввод только определенных символов, удаление запрещенных символов из ячейки ввода
Добрый вечер! Подскажите, пожалуйста, как можно такое реализовать посредством jQuery. Вот форма: &lt;div id=&quot;comment&quot;&gt; ...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru