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

При использовании оператора GOTO зацикливается программа при введении букв. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ как в С написать число по модулю http://www.cyberforum.ru/cpp-beginners/thread365998.html
1) как в С написать число по модулю... ну, например, надо решить уравнение, в котором например, переменная "х"=-2; |x|-5=... как это отобразить в С?? 2)вводится число "n" и надо чтоб программа подсчитала количество цифер, из которых оно состоит.... Как ее вообще заставить это сделать?! Спасибо заранее, и извините! :)
C++ Рисование в с++ :) Здравствуйте! Задали задачку графического характера :) Только вот не получается решить :( #include<dos.h> #include<iostream.h> #include<conio.h> #include<graphics.h> #include<stdlib.h> #define PI 3.14159 void draw_wheel(int x,int y,int theta) http://www.cyberforum.ru/cpp-beginners/thread365967.html
C++ Определение элемента дерева который имеет наименьшее количество непосредственных потомков
Определение элемента дерева который имеет наименьшее количество непосредственных потомков. Каждый элемент дерева содержит ссылку на родительский элемент и ссылки на элементы-потомки (неограниченное количество). Программа должна обеспечивать ввод и построение дерева. Можна написать на с или pascal. Помогите разобраться с этой задачей.Если кто знает как ее делать то напишите пожалуйста ответ...
Рисунок из звездочек C++
Здравствуйте!!! Помогите пожалуйста нарисовать круг из *. Пользователь из данных должен вводить только радиус
C++ Новость на заметку http://www.cyberforum.ru/cpp-beginners/thread365936.html
В США в возрасте 70 лет скончался Деннис Ритчи (Dennis Ritchie), создатель языка программирования Си и один из разработчиков операционной системы UNIX. О смерти Ритчи сообщил на своей странице в социальной сети Google+ его коллега Роберт Пайк (Robert Pike). Он указал, что программист умер у себя дома после продолжительной болезни. Портал CrazyEngineers в качестве даты смерти Ритчи называет 8...
C++ Как создавать визуальные приложения на C++? как создать визуальное приложение на с++?только с помощью апи?или можно использовать стандартные библиотеки,а еще лучше самому рисовать необходимое окно(размещать компоненты)..чтонидудь в этом роде подробнее

Показать сообщение отдельно
ProgressM
1 / 1 / 0
Регистрация: 13.10.2011
Сообщений: 5
13.10.2011, 23:29  [ТС]     При использовании оператора GOTO зацикливается программа при введении букв.
Цитата Сообщение от Hi4ko Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
               
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
         double a, b;            
                cout << "Vvedi a b\n";
                cin >> a;
                cin >> b;        
while(cin.fail() || cin.bad() || a < 0 || b < 0 || a==0 || b==0)
        {
                //cin.clear();
                cout << "Error\n";
                cin >> a;
                cin >> b; 
        }
                        cout <<"S=" << a*b << "\n";           
                _getch();       
        return 0;
}
"качество программного кода обратно пропорционально количеству операторов GOTO в нём"(с) Дейкстра
Благодарю за альтернативу программного кода, но если есть какая возможность все таки с GOTO, а то преподаватель уж совсем придирается. Но думаю такой вариант сойдет, еще раз спасибо

Добавлено через 6 минут
Цитата Сообщение от easybudda Посмотреть сообщение
ProgressM, чтобы уж совсем на С++
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
#include <iostream>
#include <stdexcept>
#include <limits>
 
int main(){
    double a, b;
    bool correct;
    
    std::cin.exceptions(std::istream::failbit | std::istream::badbit);
    correct = false;
    
    while ( ! correct ){
        try {
            std::cout << "A = ";
            std::cin >> a;
            std::cout << "B = ";
            std::cin >> b;
            
            if ( a <= 0.0 || b <= 0.0 )
                throw std::runtime_error("A and B must be greater than zero.");
            
            std::cout << "S = " << ( a * b ) << std::endl;
            correct = true;
        }
        catch ( std::istream::failure & e ){
            std::cin.clear();
            std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
            std::cerr << "Wrong input! Only numbers allowed." << std::endl;
        }
        catch ( std::exception & e ){
            std::cerr << e.what() << std::endl;
        }
        catch ( ... ){
            std::cerr << "Unknown error!" << std::endl;
            return 1;
        }
    }
    
    return 0;
}



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