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

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

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

Обработка exception - C++

16.11.2013, 14:25. Просмотров 271. Ответов 2
Метки нет (Все метки)

Возникла такая проблема и не могу понять как ее реализовать...

cin >> totalitems; // вот здесь в случае ввода не цифр, выбить ошибку и повторить цикл, как реализовать?

C++
1
2
3
4
5
6
7
8
9
10
11
int TotalArrayItems()
{
    int totalitems(0);
    do
    {
        cout << "Введите количество элементов массива: ";
        cin >> totalitems; // вот здесь в случае ввода не цифр, выбить ошибку и повторить цикл, как реализовать?
        cout << endl;
    }while(totalitems<=0);
    return totalitems;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2013, 14:25     Обработка exception
Посмотрите здесь:

Unhandled exception... C++
Unhandled exception C++
C++ exception EEFFACE
Exception C++
C++ exception
Не ловит exception C++
C++ exception C++
C++ Обработка исключений (Exception)
First chance exception at $77ADB09E. Exception class EAccessViolation with message 'Access Violation'. Process C++
C++ Exception переполнение
C++ Unhandled exception
C++ Выдаёт ошибку "Unhandled exception at 0x00007F exception: std::bad_alloc in memory location"

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
stima
444 / 293 / 20
Регистрация: 22.03.2011
Сообщений: 957
Завершенные тесты: 2
16.11.2013, 15:18     Обработка exception #2
Как варинат.

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
#include <cstdlib>
#include <iostream>
 
int main()
{
    long n = 0;
 
    std::cout << "Enter number: " << std::endl;
    for ( ;; )
    {
        std::string str;
        std::cin >> str;
 
        char* p = NULL;
        n = strtol(str.c_str(), &p, 10);
        if (*p == '\0')
        {
            break;
        }
    }
 
    std::cout << "Number is: " << n << std::endl;
 
    return 0;
}
Tulosba
:)
Эксперт С++
4387 / 3230 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
16.11.2013, 15:35     Обработка exception #3
А почему состояние потока не проверить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main() {
    int k = 0;
    cin >> k;
    
    if( !cin )
    {
        cout << "not a number\n";
    }
    else
    {
        cout << "good\n";
    }
    
    return 0;
}
Yandex
Объявления
16.11.2013, 15:35     Обработка exception
Ответ Создать тему
Опции темы

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