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

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

Войти
Регистрация
Восстановить пароль
 
Spender163
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 7
#1

Обработка исключения - C++

06.12.2013, 14:27. Просмотров 314. Ответов 5
Метки нет (Все метки)

Доброго времени суток, ув. программисты С++.
Суть моей проблемы в том, что мне надо сделать некую обработку исключения. Задание следующее: Мне нужно считать данные из файла,выполнить с ними некоторые манипуляции (нахождение НОД) и записать результат в другой файл. Мне осталось сделать исключение,что бы если в файле находятся символы либо буквы, программка ругнулась, выдала сообщение мол "данные не соответствуют типу int, введите в файл числа" . В Delphi знаю как сделать,в С++ нет. Буду признателен за помощь. Вот код:
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
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
int a, b;
fstream F;
F.open("out.txt");
while (!F.eof()) F>>a>>b;
F.close();
int c=8;
while(c<10)
{
if(a>b)
{
a=a-b;
}
else if(a<b)
{
b=b-a;
}
else if(a=b)
{
cout<<"НОД введенных чисел равен "<<a<<endl;
c=12;
}
else if(a<=0)
{
cout<<"НОД введенных чисел равен "<<b<<endl;
c=12;
}
else if(b<=0)
{
cout<<"НОД введенных чисел равен "<<a<<endl;
c=12;
}
}
F.open("in.txt", ios::out);
F<<a<<"\t"<<b<<"\t";
F.close();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2013, 14:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработка исключения (C++):

Обработка сиситемного исключения - C++
Друзья как мне переделать код, чтобы была обработка сиситемного исключения? Нужно ещё кроме деления на 0, использовать другие исключения. ...

Обработка исключения на русские буквы (try/catch) - C++
Доброго времени суток. Хотелось бы узнать как обработать исключение на русские буквы через try/catch (желательно кодом) Заранее спасибо

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

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

Конвертация wchar_t в число целого типа. Обработка исключения - C++
Конвертирую считываемые данные с Экселя в число типа int,для дальнейшей проверки вхождения в массив. buff содержит значение 12345qwe ...

Задать функцию которая возвращает частное деление двух чисел (обработка ошибок - через исключения) - C++
Ребят,срочно нужнатваша помощ.Задать функцию,которая возвращает частное деление двух чисел.Обработку ошибок реализовать через...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
RamonN
32 / 32 / 11
Регистрация: 13.07.2011
Сообщений: 136
06.12.2013, 14:33 #2
Используйте функции isalpha или isdigit
Spender163
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 7
06.12.2013, 14:41  [ТС] #3
Спасибо,но хотелось бы посмотреть полный вариант с использованием try и catch
Spender163
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 7
07.12.2013, 22:43  [ТС] #4
Ап теме!
Croessmah
Модератор
Эксперт CЭксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 3
Завершенные тесты: 1
07.12.2013, 22:50 #5
Цитата Сообщение от Spender163 Посмотреть сообщение
Мне осталось сделать исключение,что бы если в файле находятся символы либо буквы,
можно обработать без исключений и будет даже лучше.
igorrr37
1646 / 1274 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
07.12.2013, 23:12 #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
#include <iostream>
#include <fstream>
#include <stdexcept>
 
int main()
{
    try
    {
        std::ifstream ifs("in.txt");
        if(!ifs.is_open())
            throw std::runtime_error("Unable to open input file");
        int num1, num2;
        if(!(ifs >> num1 >> num2))
            throw std::runtime_error("operator>> failed");
        else
            std::cout << num1 << '\n' << num2 << std::endl;
        ifs.close();
    }
    catch(std::exception const& e)
    {
        std::cerr << e.what() << std::endl;
    }
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2013, 23:12
Привет! Вот еще темы с ответами:

исключения c++ - C++
Здраствуйте! Я тут приспособил код старого проекта чтобы побаловаться с исключениями. Перечитывал я тут недавно главу 14.6 из Страуструпа...

Исключения - C++
Здравствуйте, у меня есть немножко глупый вопрос: есть скажем функция a() { some code } Все равно поместить саму функцию а() в...

исключения - C++
программа реализует проверку на двоичное число: #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; //класс исключений ...

Исключения - C++
Помогите пожалуйста с программой, ибо чё-то не даётся мне этот try... catch . Собственно задача: Вычислите 1/х как число с плавающей...


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

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

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