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

При вводе букв (переменных)глючит программа,а должно выбивать ошибку - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ вывести первые n слов на экран http://www.cyberforum.ru/cpp-beginners/thread195397.html
Всем привет ;) Мне нужно вывести на экран первые n слов из рядка. Пользователь задает количество слов n. не пойму как организовать цикл. ввести и вывести нужно с помощью printf() и scanf() на пример есть рядок "привет алекс как у тебя дела" пользователь хочет вывести первые 2 слова, на экран должно вывести "привет алекс" буду очень признателен за помощь:)
C++ РАБОТА С ДВУМЕРНЫМИ МАССИВАМИ Вводятся начальные и конечные координаты положения шахматного коня (x1, y1, x2, y2), написать программу, определяющую за сколько ходов конь пе-реместиться в указанные координаты. Распечатать эти ходы на экране. можно с объяснением,пожалуйста) http://www.cyberforum.ru/cpp-beginners/thread195393.html
одномерный массив C++
В одномерном массиве, состоящем из n целых элементов, вычислить: 1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между первым и вторым нулевыми элементами. Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечетных позициях, а во второй половине — элементы, стоявшие в четных позициях. помогите...
C++ Класс для работы со временем
Здраствуйте=) не поможите ли вы написать класс на время. class Time{ private: int hours; int minutes; int seconds; bool isValid;
C++ try http://www.cyberforum.ru/cpp-beginners/thread195362.html
Здравствуйте. Подскажите плиз, как правильно обрабатывать исключения? Visual C++ 6 Допустим: try { int i="vsyakaya erunda"; } catch(...) { cout << "perehvat" << endl; } Как я понял в блоке try можно написать что хочеш, ведь есть обработчик catch, который правильно обработает! Обьясните плиз как надо обрабатывать?
C++ Сформировать два списка из элементов исходного Ребята, нужна функция для реализации такой вот задачки: Создается линейный список L, из него нужно составить два списка L1 и L2, по правилу что в список L1 будут входить только положительные элементы списка L , а в L2 соответственно все от=стальные ( отрицательные ) . Заранее благодарен. подробнее

Показать сообщение отдельно
Ksy
2 / 2 / 0
Регистрация: 16.05.2009
Сообщений: 103

При вводе букв (переменных)глючит программа,а должно выбивать ошибку - C++

22.11.2010, 14:35. Просмотров 732. Ответов 3
Метки (Все метки)

Программа высчитывает определённую функцию (при вводе переменных стоят ограничения). Извините, в программировании не сильна.
Это скорее не ошибка, а недоработка программы. Мне нужно, что бы при вводе букв, выбивало ошибку, что "некорректно введены данные". Писала я на С++.
Вот могу сюда скинуть честь кода:
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
#include "s_class.h"
#include <iostream>
#include <cmath>
#include <limits>
 
using namespace std;
 
char* Error = " Error!";
char* ErrorZero = " Division by 0 is impossible.";
char* ErrorSqrt = " Radical expression must be greater than 0."; 
char* ErrorRange = " Incorrect input data!!!";
 
// !!!
void s_class::add_data()              // в этой функции предусмотреть 
                                               //вариант - ввод букв
{
        long double temp;
        cout << "Input a (float): "; 
        cin >> temp;
        if(fabs(temp)>FLT_MAX)
            throw ErrorRange;
        else
            a=temp;
        cout << endl << "Input b (int): ";
        cin >> temp;
        if(fabs(temp)>INT_MAX)
            throw ErrorRange;
        else
            b=temp;
        cout << endl << "Input c(int): ";
        cin >> temp;
        if(fabs(temp)>INT_MAX)
            throw ErrorRange;
        else
            c=temp;
        cout << endl << "Input d (double): ";
        cin >> temp;
        if(fabs(temp)>DBL_MAX)
            throw ErrorRange;
        else
            d=temp;}
void s_class::show() //!!!
{
    cout << endl << endl << " sqrt(25/c)-d+2 " << endl
        << "----------" << endl
        << "d+a-1" << endl << endl << endl; 
}
 
int s_class::Calc() // вычисление
{
    cout << endl << " a = " << a << "; b = " << b
        << "; c = " << c << "; d = " << d << endl;
            
         double res;         // результат вычислений
         double ch;          // числитель выражения 
         double zn;          // знаменатель выражения
         double s;           // подкоренное выражение
         
         if(c==0)
             throw ErrorZero;
         s=25/c;
         if(s<=0)          
             throw ErrorSqrt;
         ch=s-(d)+2;
         zn=d+a-1;
 
         if(zn==0)
             throw ErrorZero;
         cout << endl << " Numerator = " << ch << endl
              << "\n Denominator = " << zn << endl;
         res=ch/zn;
         cout << endl << "\n Result: " 
              << res << endl << endl;
     return 0;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru