Форум программистов, компьютерный форум, киберфорум
Наши страницы

Отследить ввод с клавиатуры... - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Аналог модуля Делфи в С++ http://www.cyberforum.ru/cpp-beginners/thread336079.html
Соббсно, в теме и есть вопрос. Есть модуль в делфях, а что есть аналогичное в С++??? . У нас преподают паскаль и тут задача поступила небольшая - написать программку(неважно какую) , используя...
C++ массив string void func(string *mas) { //здесь } int main() { string s = { "one", http://www.cyberforum.ru/cpp-beginners/thread336072.html
C++ Дана квадратная матрица
прога на Си помогите решить дана квадратная матрица порядка N (элементы не отрицательны) Получить вторую матрицу. Элемент второй матрицы=1 i+j если сумма индексов равна элементу =-1...
даны натуральные числа N C++
прога на Си помогите решить Даны натуральные числа N b1,...,bn. Вычислить f(b0)+f(b1)+....f(bn) f(x)= x^2; x...
C++ перегрузка классов http://www.cyberforum.ru/cpp-beginners/thread336055.html
Народ, всем привет:D!!! 2 дня тому назад писал код в которм необходимо было добавить в базовый и производный классы констуктор с дополнительными параметрами, сделал, компилятор показывает что нет...
C++ задания из книги Плаугера из "Standard C Library" Exercise 1.4. Write a version of assert.h and xassert.c that prints all assertions. Why would you want to use this version? Exercise 1.5. Write a handler for the signal... подробнее

Показать сообщение отдельно
popoff17
10 / 10 / 2
Регистрация: 13.07.2010
Сообщений: 206

Отследить ввод с клавиатуры... - C++

25.07.2011, 20:28. Просмотров 3865. Ответов 8
Метки (Все метки)

Доброго времени суток!

Господа прошу помочь решить такую задачу: в консольном приложении нужно запретить ввод символов и цыфр, только буквы... Посоветовали мне "юзать getch()" но как его использовать ни примеров, ни объяснений я не смог найти. т.е. я смог после ввода прочитать коды введенных символов, но хотелось бы прямо во время нажатия на клавишу блокировать ненужные символы (знаки и цифры). подскажите пожалуйста как можно реализовать? может каким другим путем пойти?

пока что сделал проверку введенных данных функцией isalpha(), но так бы не желательно для меня...

в данный момент имею вот что:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
void main() {
char imya[255], familya[255], otch[255];
    int act, year;
    menu:
    std::setlocale(LC_ALL, "Russian_Russia.1251");
 
std::cout << "Добро пожаловать в управление конференциями!"<<std::endl;
std::cout << "Выберете действие!"<<std::endl;
std::cout << ""<<std::endl;
std::cout << "1 -Ввод данных участника конференции."<<std::endl;
std::cin>>act;
 
if(!std::cin.good()){
std::cout<<"Некорректные данные"<<std::endl;
std::cin.clear();
std::cin.ignore(255, '\n').get();
}
 
 
switch (act){
                case 1:
familya:
std::cout << "Введите фамилию!"<<std::endl;
std::cin>>familya;
int i, len = std::strlen(familya);              //ОРГАНИЗУЕМ ПОСИМВОЛЬНОЕ ЧТЕНИЕ СТРОКИ
for(i=0; i<len; ++i){
    std::cout<<std::isalpha (familya[i])<<std::endl;
    if (isalpha (familya[i]) == 0){             //ПРОВЕРКА СИМВОЛОВ, ЕСЛИ НЕ БУКВА ТО ОШИБКА!!!
    std::cout<<"\nerror, try again!\n\n";
    goto familya;                                   //ПЕРЕХОД К НАЧАЛУ ВВОДА
    }}
 
 
std::cout << "Введите имя!"<<std::endl;
std::cin>>imya;
std::cout <<imya<<std::endl;
 
 
std::cout << "Введите отчество!"<<std::endl;
std::cin>>otch;
std::cout <<otch<<std::endl;
 
 
std::cout << "Введите год рождения!"<<std::endl;
std::cin>>year;
std::cout <<year<<std::endl;
 
file.open("anket.txt", std::ios::out | std::ios::app); // открытие файла
 
if (file.is_open()){
    std::cout << "file is open" <<std::endl; //проверка
    file<<familya<<";"<<imya<<";"<<otch<<";"<<year<<";";///запись в файл
    file.close(); //закрытиe файла
    system ("pause");}
break;
 
}
std::cin.ignore(255, '\n').get();
system ("pause");
}
если дописать case 2 ...... default: то происходит ошибка.

В общем кто чем поможет заранее спасибо!

З.Ы. если вопрос показался глупым - прошу тапками не кидать, только начал разбираться с сишкой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru