Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Gepar
1178 / 534 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
#1

Стандартные потоки и связанные с ними исключения - C++

18.01.2012, 02:02. Просмотров 1066. Ответов 1
Метки нет (Все метки)

Хочу задать выброс исключений если что-то с потоком не так, мне это и удалось, но я не могу очистить поток после этого. Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <stdexcept>
using namespace std;
 
int main()
{
    cin.exceptions(ios_base::failbit);
    int x;
 
    try
    {
        cin>>x; //для демонстрации нужно ввести что-то недопустимое, например символ
    }
 
    catch(ios_base::failure)
    {
        cout<<"Get exception";
        cin.clear(); //поток всё ещё сломан
    }
    cin>>x; //ошибка. cin всё ещё сломан и поэтому получаем опять exception
    cout<<x;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2012, 02:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Стандартные потоки и связанные с ними исключения (C++):

Стандартные потоки - C++
Пишу такой код #include &lt;iostream&gt; #include &lt;thread&gt; using namespace std; void f1() { for (int i=1;i&lt;100;i+=2) { ...

Стандартные потоки, задача - C++
Препод дал задачу из учебника. Сам толком ничего не понимаю, прошу помощи в готовом коде. Вариант 4. 1. Определить класс с именем...

Что такое потоки ввода, потоки вывода? - C++
Здарова всем! Не так давно уже прогаю на С++ и все НИКАК не могу понять, что такое потоки ввода, потоки вывода..! вот допустим...

Пакетированные стандартные блоки - Вложенные стандартные блоки - C++
Кто нибудь может объяснить на примере кода С, как это выглядит?

Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили пе - C++
Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если...

Стандартные потоки C++ в Qt - Кроссплатформенная разработка
Доброго времени суток! Столкнулся с одной проблемой, при использовании стандартных потоков в Qt, использую версию 5.7. Нашел строку,...

1
retmas
Жарю без масла
864 / 746 / 168
Регистрация: 13.01.2012
Сообщений: 1,702
18.01.2012, 02:35 #2
потому что
C++
1
clear();
генерирует исключение, если поток поломан и установлены exceptions()

Добавлено через 4 минуты
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 <stdexcept>
using namespace std;
 
int main()
{
    cin.exceptions(ios_base::failbit);
    int x;
 
    try
    {
        cin>>x; //для демонстрации нужно ввести что-то недопустимое, например символ
    }
 
    catch(ios_base::failure)
    {
        cin.exceptions(ios_base::goodbit);
        cout<<"Get exception\n";
        cin.clear(); //поток всё ещё сломан
    }
    cin.ignore();
    cin>>x; //ошибка. cin всё ещё сломан и поэтому получаем опять exception
    cout<<x;
}
и все пучком
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2012, 02:35
Привет! Вот еще темы с ответами:

Параллельные потоки и исключения - C++ Qt
Здравствуйте всем! Хочу спросить у вас по поводу хорошей практики: работа параллельных потоков с исключениями. По моему...

Как с помощью vba в таблицах открывать связанные и работать с ними - MS Access
Здравствуйте, как с помощью vba в таблицах открывать связанные и работать с ними по типу:

Как обрабатывать системные исключения в С++ Builder так, чтобы в ответ на стандартные ошибки - C++ Builder БД
появлялось не стандартное окно, а моё окно, которое я создал в приложении сам?

Потоки и взаимодействие между ними - C#
Всем привет! С потоками вот только начал разбираться, поэтому вопрос нубский. Каким образом можно реализовать взаимодействие...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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