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

проверка на int - C++

Восстановить пароль Регистрация
 
letnjaja
 Аватар для letnjaja
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
17.10.2012, 15:52     проверка на int #1
добрый день!
не работает проверка на int . подскажите в чем проблема?

C++
1
2
3
4
5
6
7
bool bFlag;
    do {    
        cout<<"Enter an integer and a word:"<<endl;
        cin>>number9>>word3;
        if (!(bFlag=cin.good())){cin.clear();cin.ignore(cin.rdbuf()->in_avail());} 
    }while(!(isAlphaString(word3) && bFlag));
    cout<<"you entered"<<endl<<number9<<" "<<word3<<endl;
или
C++
1
2
3
4
5
6
7
8
9
10
11
bool bFlag;
    do {    
        cout<<"Enter an integer and a word:"<<endl;
        cin>>number9>>word3;
        //if (!(bFlag=cin.good())){cin.clear();cin.ignore(cin.rdbuf()->in_avail());} 
       if (!(bFlag=cin.good())){
        cin.clear();
     cout << "nepraviljnij vvod " << endl;
     cin.ignore(10, '\n');}
    }while(!(isAlphaString(word3) && bFlag));
    cout<<"you entered"<<endl<<number9<<" "<<word3<<endl;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
17.10.2012, 16:26     проверка на int #2
вот как пример
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
using namespace std;
 
int main(){
    int number;
    while(cin >> number){
        cout << "U've entered :" << number << '\n';
    }
    return 0;
}
letnjaja
 Аватар для letnjaja
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
17.10.2012, 21:25  [ТС]     проверка на int #3
я могу написать отдельно проверку, проблема в том, что я не могу совместить ее с другой проверкой на ввод только букв в слове...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
int main()
{
cout<<"enter one integer:"<<endl;
cin>>number1;
if( cin.good())
    {
               cout<<"You entered the number:"<<number1<<endl;
               cout<<endl;
               cin.ignore(10, '\n');
               break;
     }
     cin.clear();
     cout << "nepraviljnij vvod " << endl;
     cin.ignore(10, '\n');
     }
return 0;
}
п.с. как в отрывке кода выше
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
17.10.2012, 21:55     проверка на int #4
letnjaja, вот небольшая проверка на правильный ввод числа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{
    int n;
    cout << "Enter int: "; 
    while (!(cin >> n))                
    {
        cin.clear();                     
        while ( cin.get() != '\n' ) ;    
        cout << "Wrong! Enter again: ";
    }   
    cout<<"You entered: "<<n<<endl;
    system("pause");
    return 0;
}
Напишите конкретно что вам нужно.
letnjaja
 Аватар для letnjaja
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
17.10.2012, 22:10  [ТС]     проверка на int #5
в последнем вводе (enter integer and word)
если я ввожу букву,вместо числа и слово, он на это не ругается, кароче не работает проверка на число
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#include<iostream>
#include <iomanip> // vivod treh to4ek posle zapjatoj
#include <ctype.h>
#include <stdio.h>
#include <string>
 
//////////////////////////////////////////////////
bool isAlphaString (std::string &str);///////////////////////////////////////bool is AlphaString (std::string &str); //na proverku slova
 
using namespace std;
 
int main()
 
{
    int number1,number2,number3,number4,number5,number6,number7,number8;
    float real,real1;
    char simbol,character;
    string word,word2,word3;
    char number9;
    
    while(true)
        {
//enter one integer
cout<<"enter one integer:"<<endl;
cin>>number1;
if( cin.good())
    {
               cout<<"You entered the number:"<<number1<<endl;
               cout<<endl;
               cin.ignore(10, '\n');
               break;
     }
     cin.clear();
     cout << "nepraviljnij vvod " << endl;
     cin.ignore(10, '\n');
     }
//enter four integers
while(true)
{
cout<<"enter four integers:"<<endl;
 
cin>>number2>>number3>>number4>>number5;
 
if( cin.good())
    {
               cout<<"You entered the numbers:"<<number2<<" "<<number3<<" "<<number4<<" "<<number5<<endl;
               cout<<endl;
               cin.ignore(10, '\n');
               break;
     }
     cin.clear();
     cout << "nepraviljnij vvod " << endl;
     cin.ignore(10, '\n');
     }
//enter one integer and one real number
while(true)
{
cout<<"enter one integer and one real number:"<<endl;
cin>>number6;
cin>>real;
if( cin.good())
    {
              cout<<"The real number is:"<<endl;
              std::cout<<std::fixed<<std::setprecision(3)<<real<<endl;
                                         cout<<"he integer is:"<<number6<<endl;
                                         cout<<endl;
               cin.ignore(10, '\n');
                   break;
     }
     cin.clear();
     cout << "nepraviljnij vvod " << endl;
     cin.ignore(10, '\n');
     }
//enter one real and one integer
 
while(true)
{
cout<<"enter one real and one integer number:"<<endl;
cin>>number7;
cin>>real1;
if( cin.good())
    {
               cout<<"The real number is:"<<endl;
               std::cout<<std::fixed<<std::setprecision(3)<<real1<<endl;
                                         cout<<"he integer is:"<<number7<<endl;
                                         cout<<endl;
               cin.ignore(10, '\n');
                   break;
     }
     cin.clear();
     cout << "nepraviljnij vvod " << endl;
     cin.ignore(10, '\n');
     }
  
  //enter a character
cout<<"enter simbol:"<<endl;
cin>>simbol;
while (true)
{
if(isalpha(simbol))
    {
        cout<<"You entered: "<<simbol<<endl<<endl;
        break;
    }
    else
    {
        cout<<"Error!!! Not simbol.\nEnter again: ";
        cin>>simbol;
    }
}
//
 
//funkcija na proverku vvedeno li slovo
//enter a word
//////////////////////////////////////////////////////////////
    do{
    cout<<"Enter word:"<<endl;
    cin>>word;
    }while(!isAlphaString(word)); 
    cout<<"you entered: "<<endl;
    cout<<word<<endl;    
//////////////////////////////////////////////////////////////
 //enter an character and a word:
         do {
             cout<<"Enter character and a word:"<<endl;
             cin>>character>>word2;
             }
             while((!isAlphaString(word2))||(!isalpha(character)));
           
             cout<<"you entered:"<<endl;
             cout<<character<<" "<<word2;
             cout<<endl;
              
/////////////////////////////////////////////////////////////////////
 
bool bFlag;
    do {    
        cout<<"Enter an integer and a word:"<<endl;
        cin>>number9>>word3;
      /*  if (!(bFlag=cin.good())){cin.clear();cin.ignore(cin.rdbuf()->in_avail());}*/
 
       if (!(bFlag=cin.good())){
        cin.clear();
     cout << "nepraviljnij vvod " << endl;
     cin.ignore(10, '\n');}*/
     
    }while(!(isAlphaString(word3) && bFlag));
    cout<<"you entered"<<endl<<number9<<" "<<word3<<endl;
 
  system ("pause");
  return 0;
}
bool isAlphaString (std::string &str)
{
    for (unsigned int i = 0; i < str.length(); i++)
      if (!isalpha(str[i]))
        return false;
    return true;
}
Yandex
Объявления
17.10.2012, 22:10     проверка на int
Ответ Создать тему
Опции темы

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