Мне нужно заблокировать ввод букв и символов где цифры и цифры и символы где символы
Пример:
- Максимальный доход, но я не хочу получать цифры или любой символ.
- Я ввожу 0987563421 как телефон, но не хочу получать буквы или символы.
Это мой код:
#include <iostream>
using namespace std;
int main ()
{
char n[21], a[21], c[13], tel[13], us[21], co[21];
cout <<"\n\n\n\n\t\t\t\t Tricell S.A." << endl;
cout <<"\t\t\t\t <---------------->" << endl;
cout <<"\n\t\t\t\t > Ingrese sus nombres: ";
cin.ignore(1,'\n');
cin.get(n, 21);
cout <<"\n\t\t\t\t > Ingrese sus apellidos: ";
cin.ignore(1,'\n');
cin.get(a, 21);
cout <<"\n\t\t\t\t > Ingrese su cedula: ";
cin.ignore(1,'\n');
cin.get(c, 13);
cout <<"\n\t\t\t\t > Ingrese su telefono: ";
cin.ignore(1,'\n');
cin.get(tel, 13);
cout <<"\n\t\t\t\t > Ingrese un usuario: ";
cin.ignore(1,'\n');
cin.get(us, 21);
cout <<"\n\t\t\t\t > Ingrese una contrase"<<char(164)<<"a: ";
cin.ignore(1,'\n');
cin.get(co, 21);
cout <<"\n\t\t\t\t < Datos registrados correctamente\n\n";
cin.get();
cin.get();
return 0;
}
Знаете ли вы какую-либо функцию или библиотеку для блокировки символов?
Обратите внимание, что номера телефонов могут содержать нечисловые символы, например, символ
+
:+34654321012
эквивалентен0034654321012
. С другой стороны, в именах людей можно встретить цифры или другие символы, например журналистка Jennifer 8. Lee или шведское Brfxxccxxmnpcccclllmmnprxvclmnckssqlbb11116 .Если вы хотите игнорировать определенные значения из стандартного чтения, вы можете использовать. Вы можете отфильтровать интересующие вас значения (и игнорировать остальные), различая числа и буквы:ignore
, чтобы игнорировать числа при вводе буквС помощью
isalpha
вы можете определить, является ли символ буквенным или числовым.Вы можете увидеть работающий код [здесь] .
Для тех, у кого такая же проблема или кто хочет найти решение, я нашел и попробовал это:
Создаются две функции:
1.-
void editable (char *p);
какая функция будет блокировать символы клавиатуры2.-
char getch ();
какой будет функция, которая будет захватывать символ, не печатая его в стандарте С++, не существует conio.h, поэтому вам нужно создать функцию