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

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

Восстановить пароль Регистрация
 
piv199
0 / 0 / 0
Регистрация: 21.12.2012
Сообщений: 49
16.11.2013, 14:25     Обработка exception #1
Возникла такая проблема и не могу понять как ее реализовать...

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++
exception и cerr C++
Exception C++
C++ exception
C++ exception C++
C++ Обработка исключений (Exception)
First chance exception at $77ADB09E. Exception class EAccessViolation with message 'Access Violation'. Process C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
stima
429 / 284 / 16
Регистрация: 22.03.2011
Сообщений: 926
Завершенные тесты: 1
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
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
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
Ответ Создать тему
Опции темы

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