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

Проблемы с проверкой введённых данных - C++

Восстановить пароль Регистрация
 
superNOOB
3 / 3 / 0
Регистрация: 04.10.2013
Сообщений: 37
04.10.2013, 03:20     Проблемы с проверкой введённых данных #1
Никак не могу раобраться с проверкой на ввод числа, символа
Которую нужно обязательно добавить
Помогите пожалуйста


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
#include <iostream>
#include <string>
#include <cctype>
 
using namespace std;
int main(){
    float x, y; 
    int r,u;
    string a;
    
    
    cout << "Здравствуйте" << endl;
    //программа по опрделению нахождения некой заданной точки на некой заданной области координат
 
    cout << "Желаете ознакомиться с руководством к использованию? (Д/Н)" << endl;
    cin >> a;
    if ( a == "Д" ) cout << "Бла бла бла " << endl;
    else cout << "Как вам будет угодно" << endl;
    
    cout << "Введите пожалуйста R" << endl;
    cin >> r;
    cout << " R = " << r << endl;
    cout << "Введите координаты точки Т(x;y)" << endl;
    cin >> x >> y;
    cout << " X = " << x << endl;
    cout << " Y = " << y << endl;
 
    if ( (x<=r && x>=(-1*r)) and (y<=r && y>=(-1*r)) ) cout << "Точка принадлежит заданной области координат" << endl;
    else cout << " Точка не принадлежит заданной области координат" << endl;
 
    return 0;
[/SIZE][/SIZE]
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.10.2013, 04:00     Проблемы с проверкой введённых данных #2
Пример привидите, непонятно, что нужно.
superNOOB
3 / 3 / 0
Регистрация: 04.10.2013
Сообщений: 37
04.10.2013, 04:31  [ТС]     Проблемы с проверкой введённых данных #3
К примеру, чтобы если я ввёл слово вместо числа мне выдавалась ошибка и просиба ввести заново
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.10.2013, 04:32     Проблемы с проверкой введённых данных #4
// Правильный ввод целого числа: в строке ввода только цифры, перед которыми могут быть + или -
C++
1
2
3
4
5
6
while (!(cin >> r) || (cin.peek() != '\n'))
{
    cin.clear();
    while (cin.get() != '\n');
    cout << "Error!" << endl;
}
superNOOB
3 / 3 / 0
Регистрация: 04.10.2013
Сообщений: 37
04.10.2013, 04:56  [ТС]     Проблемы с проверкой введённых данных #5
Не могли бы вы ръяснить, если не сложно?
Потому как у меня подобная структура не проходит, делал по вашему примеру
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.10.2013, 05:29     Проблемы с проверкой введённых данных #6
Цитата Сообщение от superNOOB Посмотреть сообщение
делал по вашему примеру
Покажите как делали.

Добавлено через 19 минут
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
#include <iostream>
#include <string>
#include <cctype>
 
using namespace std;
int main(){
    
    setlocale(0, "");
    float x, y; 
    int r,u;
    string a;
    
    
    cout << "Здравствуйте" << endl;
    //программа по опрделению нахождения некой заданной точки на некой заданной области координат
 
    cout << "Желаете ознакомиться с руководством к использованию? (Д/Н)" << endl;
    cin >> a;
    if ( a == "Д" ) cout << "Бла бла бла " << endl;
    else cout << "Как вам будет угодно" << endl;
    
    cout << "Введите пожалуйста R" << endl;
    //cin >> r;
    while (!(cin >> r) || (cin.peek() != '\n'))
    {
        cin.clear();
        while (cin.get() != '\n');
        cout << "Ошибка ввода!" << endl;
        cout << "Введите пожалуйста R" << endl;
    }
    cout << " R = " << r << endl;
    cout << "Введите координаты точки Т(x;y)" << endl;
    cout << "Введите x: ";
    //cin >> x >> y;
    while (!(cin >> x) || (cin.peek() != '\n'))
    {
        cin.clear();
        while (cin.get() != '\n');
        cout << "Ошибка ввода!" << endl;
        cout << "Введите x: " << endl;
    }
    cout << "Введите y: ";
    while (!(cin >> y) || (cin.peek() != '\n'))
    {
        cin.clear();
        while (cin.get() != '\n');
        cout << "Ошибка ввода!" << endl;
        cout << "Введите y: " << endl;
    }
 
    cout << " X = " << x << endl;
    cout << " Y = " << y << endl;
 
    if ( (x<=r && x>=(-1*r)) && (y<=r && y>=(-1*r)) ) cout << "Точка принадлежит заданной области координат" << endl;
    else cout << " Точка не принадлежит заданной области координат" << endl;
 
    return 0;
}
Добавлено через 10 минут
Если шаблоны знаете, то можно так:
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
#include <iostream>
#include <string>
#include <cctype>
 
using namespace std;
 
template <class T>
void input(T &n, char ch)
{
    cout << "Введите пожалуйста " << ch << ": ";
    while (!(cin >> n) || (cin.peek() != '\n'))
    {
        cin.clear();
        while (cin.get() != '\n');
        cout << "Ошибка ввода!" << endl;
        cout << "Введите пожалуйста " << ch << ": ";
    }
}
 
 
int main()
{
    
    setlocale(0, "");
    float x, y; 
    int r,u;
    string a;
    
    
    cout << "Здравствуйте" << endl;
    //программа по опрделению нахождения некой заданной точки на некой заданной области координат
 
    cout << "Желаете ознакомиться с руководством к использованию? (Д/Н)" << endl;
    cin >> a;
    if ( a == "Д" ) cout << "Бла бла бла " << endl;
    else cout << "Как вам будет угодно" << endl;
    
    input(r, 'R');
    
    cout << " R = " << r << endl;
    cout << "Введите координаты точки Т(x;y)" << endl;
    
    input(x, 'x');
    input(y, 'y');
    
    cout << " X = " << x << endl;
    cout << " Y = " << y << endl;
 
    if ( (x<=r && x>=(-1*r)) && (y<=r && y>=(-1*r)) ) cout << "Точка принадлежит заданной области координат" << endl;
    else cout << " Точка не принадлежит заданной области координат" << endl;
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2013, 05:40     Проблемы с проверкой введённых данных
Еще ссылки по теме:

C++ Поиск по условию в уже введённых данных
C++ Проблемы с кодировкой при выводе данных
Цикл на проверку введённых данных C++

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

Или воспользуйтесь поиском по форуму:
superNOOB
3 / 3 / 0
Регистрация: 04.10.2013
Сообщений: 37
04.10.2013, 05:40  [ТС]     Проблемы с проверкой введённых данных #7
Большое спасибо, вы просто святой человек
Yandex
Объявления
04.10.2013, 05:40     Проблемы с проверкой введённых данных
Ответ Создать тему
Опции темы

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