Форум программистов, компьютерный форум CyberForum.ru

тип char ввод только букв - C++

Восстановить пароль Регистрация
 
letnjaja
 Аватар для letnjaja
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
10.10.2012, 20:07     тип char ввод только букв #1
не работает ограничение на ввод только букв, что я делаю не так?
C++
1
2
3
4
5
6
7
8
9
10
11
cout<<"Enter a character:"<<endl;
cin>>simbol;
......
if((simbol <= 'z' && simbol >= 'a') || (simbol <= 'Z' &&                        simbol >= 'A'))
 
                        {                                        
                      cout<<"You entered:"<<simbol<<endl;
                                          cout<<endl;}
else
cout<<"error"<<endl;
.....
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#include<iostream>
#include <iomanip> // vivod treh to4ek posle zapjatoj
using namespace std;
 
int main()
  
{
    int number1;
    int number2,number3,number4,number6,number9,number10;
    float number5,number7,number8,number11;
    char simbol,simbol2;
    string word,word2,word3,word4,word5,word7,word8,word9;
    char input[100];
    char input2[100];
    while(true) 
        {
            
//********************************************************************************//
                cout<<"enter number1:"<<endl;
                cin>>number1;
               
//******************************************************************************//
cout<<"enter four integers and one real number:"<<endl;
cin>>number2>>number3>>number4>>number5;
 
//******************************************************************************//
cout<<"Enter one integer and one real number:"<<endl; //vivod treh simvolov posle zapjatoj
cin>>number6>>number7;
//********************************************************************//
cout<<"Enter one real and one integer:"<<endl;
cin>>number8>>number9;
 
//******************************************************************************//
cout<<"Enter a character:"<<endl;
cin>>simbol;
 
//********************************************************************//
cout<<"Enter a word:"<<endl;
cin>>word;
//***********************************************************//
cout<<"Enter an integer and a word:"<<endl;
cin>>number10>>word2;
//**********************************************************//
cout<<"Enter an character and a word:"<<endl;
cin>>simbol2>>word3;
//*************************************************//
cout<<"enter a world and a real number:"<<endl;
cin>>word4>>number11;
//***************************************************//
cout<<"enter a text-line:"<<endl;
cin.get();
cin.getline(input, 100);
//**************************************************//
cout<<"Enter a second line of text:"<<endl;
cin.get();
cin.getline(input2,100);
//****************************************************
cout<<"enter three words:"<<endl;
cin>>word7>>word8>>word9;
 
                             if( cin.good()) 
                                  {
                                       
                                         cout<<"You entered the number:"<<number1<<endl;
                                         cout<<endl;
                                         //----------------------------------------------//
                                         cout<<"You entered the numbers"<<number2<<" "<<number3<<" "<<number4<<" "<<number5<<endl;
                                          cout<<endl;
                                         //--------------------------------------------------------------------------------------//
                    cout<<"The real number is:"<<endl;
                    std::cout<<std::fixed<<std::setprecision(3)<<number7<<endl;//std::cout << std::fixed << std::setprecision(n) << something;
                                         cout<<"he integer is:"<<number6<<endl;
                                          cout<<endl;
                                         //----------------------------------------------------------------------------------------//
                                         
                    cout<<"The real is:"<<endl;
                    std::cout<<std::fixed<<std::setprecision(3)<<number8;
                                         cout<<"he integer is:"<<number9<<endl;
                                          cout<<endl;
                                         //---------------------------------------------------------------//
                    [COLOR="Magenta"]if((simbol <= 'z' && simbol >= 'a') || (simbol <= 'Z' &&                       simbol >= 'A'))
 
                        {                                        
                      cout<<"You entered:"<<simbol<<endl;
                                          cout<<endl;}
else
cout<<"error"<<endl;[/COLOR]
                                         //-------------------------------------------------------------//
                                         cout<<"You entered:"<<word<<endl;
                                          cout<<endl;
                                         
                                         //-----------------------------------------//
                                         cout<<"You entered"<<"\'"<<number10<<"\'"<<"and"<<"\'"<<word2<<"\'"<<"."<<endl;
                                          cout<<endl;
                                         //-----------------------------------------//
                                         cout<<"You entered the string"<<" \" "<<word3<<" \" "<<"and the character"<<"\'"<<simbol2<<"\'"<<"."<<endl;
                                          cout<<endl;
                                         //---------------------------------------------------------------//
                                         cout<<"You entered"<<" \" "<<word4<<" \" "<<"and"<<" \" "<<number11<<" \" "<<endl;
                                          cout<<endl;
                                         //----------------------------------------------//
                                         cout<<" \" "<<"You entered"<<input<<" \" "<<endl;
                                          cout<<endl;
                                         //----------------------------------------------------//
                                        cout<<"You entered"<<" \'"<<input2<<" \" "<<endl;
                                          cout<<endl;
                                         //---------------------------------------------//
                                         cout<<"You entered:"<<" \'"<<word7<<"  "<<word8<<"  "<<word9<<" \'"<<endl;
                                          cout<<endl;
                                         
                                         
                                          cin.ignore(10, '\n'); 
                                          break; 
                                  } 
                cin.clear(); 
                cout << "nepraviljnij vvod " << endl; 
                cin.ignore(10, '\n'); 
       } 
   
      system ("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
10.10.2012, 20:28     тип char ввод только букв #2
letnjaja, например, при вводе двух и более символов? Так и должно быть. Symbol содержит всего один символ (1 байт), остальные при вводе отбрасываются.
letnjaja
 Аватар для letnjaja
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
10.10.2012, 20:36  [ТС]     тип char ввод только букв #3
net, pri vvode odnogo simvola. ja ho4u, 4tobi ,mowno bilo vvoditj toljko bukvi, a programma prinimaet , ; i t.d.
p.s. sorry, ne mogu pisatj kirillicej
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
10.10.2012, 20:41     тип char ввод только букв #4
letnjaja, у меня все отлично работает.
Миниатюры
тип char ввод только букв  
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
10.10.2012, 21:17     тип char ввод только букв #5
Замените это:
C++
1
if((simbol <= 'z' && simbol >= 'a') || (simbol <= 'Z' &&                        simbol >= 'A'))
на такую проверку:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cout<<"Enter a character:"<<endl;
char simbol;
cin>>simbol;
while(true)
{
    if(isalpha(simbol))
    {
        cout<<"You entered: "<<simbol<<endl<<endl;
        break;
    }
    else
    {
        cout<<"error!!! Not simbol.\nEnter again: ";
        cin>>simbol;
    }
}
Yandex
Объявления
10.10.2012, 21:17     тип char ввод только букв
Ответ Создать тему
Опции темы

Текущее время: 04:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru