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

Что возвращать при делении на ноль? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести символ " http://www.cyberforum.ru/cpp-beginners/thread748925.html
Простите за глупый вопрос но как вывести "(кавычку) с помощью std::cout?
C++ list. Cоздать список из результатов(с массивами), а потом просмотреть весь список Подскажите пожалуйста как мне создать список из моих результатов(с массивами) а потом просмотреть весь список, вот код который имеется # include <iostream> # include <list> using namespace std; struct Number { int res; http://www.cyberforum.ru/cpp-beginners/thread748917.html
CRT_SECURE_NO_WARNINGS C++
This function or variable may be unsafe. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. Стоит ли реагировать на данное предупреждение? И как сделать в VS 10 так, чтобы не добавлять в каждом проекте библиотеку define? Заметил, что на некоторых VS Express 10 это предупреждение никогда не вылезает.. Спасибо
ошибка линковки C++
int main() { return 0; } делаю так: в MSVC++ создаю проект консоли, выбираю пустой проект, затем создаю файл кода с++, пишу эти строки и при линковке вылетает LINK : error LNK2001: неразрешенный внешний символ "_mainCRTStartup".
C++ Итераторы begin и end http://www.cyberforum.ru/cpp-beginners/thread748903.html
Привет всем! Возникла проблема с итераторами. Пишу класс, который содержит вектор векторов. Пишу итератор к этому классу. Не получается написать итераторы begin и end. Мне ведь нужно вернуть итератор на первый элемент, но это vector<int>::iterator, а нужно вернуть итератор своего класса. Подскажите, как решить проблему. Спасибо)
C++ табуляция функции. почему не работает код? #include <iostream> #include <cmath> #include <stdlib.h> #include <cstdio> using namespace std; float arctg(float x) { return arctg(1/x)-(x*x); подробнее

Показать сообщение отдельно
HighPredator
5454 / 1820 / 335
Регистрация: 10.12.2010
Сообщений: 5,384
Записей в блоге: 3
28.12.2012, 15:51     Что возвращать при делении на ноль?
Если же в общем случае неизвестно, какая из переменных может стать виновницей деления на ноль, тогда придется отлавливать непосредственно деление на ноль. При этом, важно помнить, что деление на ноль - структурное исключение, и его придется превращать в типизированное C++ исключение. Для этого нужно будет установить свой транслятор, в котором будет сгенерировано перехватываемое в дальнейшем исключение. Например:
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
#include <iostream>
#include <windows.h>
 
void testfunc()
{
    int x, y=0;
    x = 5 / y;
}
 
void translator_func(unsigned int u, EXCEPTION_POINTERS* pExp)
{
    std::cout<<"Some structured exception occurred."<<std::endl;
    throw std::exception("Division by zero");
}
 
int main()
{
    try
    {
        _set_se_translator(translator_func);
        testfunc();
    }
    catch(const std::exception& e)
    {
        std::cout<<"Caught exception - "<<std::endl<<e.what()<<std::endl;
    }
    return 0;
}
Компилировать с ключом /EHa.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru