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

Проверить введенное значение и, если это не цифра, вернуться ко вводу - C++

Восстановить пароль Регистрация
 
Random_Name
0 / 0 / 0
Регистрация: 13.03.2014
Сообщений: 2
13.03.2014, 18:07     Проверить введенное значение и, если это не цифра, вернуться ко вводу #1
Программа должна проверить введенное значение и, если это не цифра, вернуться ко вводу, но она зацикливается. Также если можно, как это сделать без goto?
код:

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
#include <stdio.h>
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
 
int main ()
{
    double b,z1,z2;
y:  cout << "Input b:\n";
    bool k; 
    cin >> b;
    if (cin.good())
    {
        k=true;
        while (k)
        {       
            cout << "You're not a fool!\n";
            if (b > 2)
            {
                cout << "Let's count!\n";
                z1=sqrt(2*b+2*sqrt(pow(b,2)-4))/(sqrt(pow(b,2)-4)+b+2);
                z2=1/sqrt(b+2);
                cout << "Here is the first result: " << z1 << endl;
                cout << "And here is the second: " << z2 << endl;
                system("pause");
            }
            else
            {
                cout << "But that's not going to work...\n";
                goto y;
            }
        }
        system("pause");
    }
    else
    {       
        cout << "Sorry, but you're a fool :c\n";
        goto y;
    }
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2014, 18:07     Проверить введенное значение и, если это не цифра, вернуться ко вводу
Посмотрите здесь:

C++ Проверить являетсяли введенное число полиндромом.
C++ Проверить, является ли введенное целое c++
C++ как соединить b и с в число, если а это число, б это десятки перевернутого числа, с это единицы перевернутого числа вот в это строчке c=a+b,c;
Проверить, имеется ли в массиве число, введенное пользователем. Если да – вывести его индекс C++
C++ Проверить введенное число
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.03.2014, 18:09     Проверить введенное значение и, если это не цифра, вернуться ко вводу #2
C++
1
2
3
4
5
6
7
double a;
while (!(cin >> a) || (cin.peek() != '\n'))
{
    cin.clear();
    while (cin.get() != '\n');
    cout << "Error!" << endl;
}
Random_Name
0 / 0 / 0
Регистрация: 13.03.2014
Сообщений: 2
13.03.2014, 18:20  [ТС]     Проверить введенное значение и, если это не цифра, вернуться ко вводу #3
спасибо, а можно объяснить что делается в каждой строчке?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.03.2014, 18:45     Проверить введенное значение и, если это не цифра, вернуться ко вводу #4
Нужен фильтр ввода данных
Yandex
Объявления
13.03.2014, 18:45     Проверить введенное значение и, если это не цифра, вернуться ко вводу
Ответ Создать тему
Опции темы

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