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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
superNOOB
3 / 3 / 0
Регистрация: 04.10.2013
Сообщений: 37
#1

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

04.10.2013, 03:20. Просмотров 296. Ответов 6
Метки нет (Все метки)

Никак не могу раобраться с проверкой на ввод числа, символа
Которую нужно обязательно добавить
Помогите пожалуйста


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]
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2013, 03:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблемы с проверкой введённых данных (C++):

Цикл на проверку введённых данных - C++
Здравствуйте. Мне нужно проверить вводимые данные в двумерный массив. Всё бы хорошо, если бы на последнюю строчку ввода при правильном...

проблема с проверкой вводимых данных - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; double c,f; int main() { setlocale(LC_ALL, &quot;Russian&quot;); ...

Поиск по условию в уже введённых данных - C++
Известны данные о моделях ноутбуков к их стоимости. Необходимо обеспечить ввод этих данных в программу, после этого следует найти ноутбук,...

Ошибка при сравнении введённых данных - C++
Я очень долго пытался решить эту трабл но так и не понял даже ее суть( Суть данного компонента в том что есть 2 массива из которых...

Мини База Данных фамилий с проверкой - C++
Здравствуйте! Помогите пожалуйста написать простую программку на С++ очень буду благодарен! Задание такое: Существует текстовый...

Реализовать программу, рисующую треугольник на основании введённых пользователем данных - C++
Здравствуйте Нужна помощь в написании программы) Пишу с руки 3 стороны треугольника, программа должна нарисовать сам...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5417 / 4813 / 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
5417 / 4813 / 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
5417 / 4813 / 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;
}
superNOOB
3 / 3 / 0
Регистрация: 04.10.2013
Сообщений: 37
04.10.2013, 05:40  [ТС] #7
Большое спасибо, вы просто святой человек
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2013, 05:40
Привет! Вот еще темы с ответами:

Используя массив структур - на основе введённых данных создать таблицу - C++
Знаю что делаю, что-то не так. Но не могу разобраться. Нужно используя массив of Structures - на основе введённых данных создать таблицу....

Проблемы с инициализацией данных - C++
Сразу оговорюсь, что на форуме пишу впервые и перед тем, как писать о проблеме ознакомился с похожими темами , но именно по моей проблеме...

Проблемы с кодировкой при выводе данных - C++
Пользуюсь хрюшей и VS 2008 Программа 1 #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main()...

Проблемы с программой (вывод лишних символов из данных вне массива) - C++
Прошу скорее помочь с программой. Выводит лишние неведомые символы. Почему это происходит мне известно, однако где и как с этим бороться -...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.10.2013, 05:40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru