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

try catch для int; - C++

Восстановить пароль Регистрация
 
rioba
0 / 0 / 0
Регистрация: 16.04.2012
Сообщений: 14
29.04.2012, 20:01     try catch для int; #1
Как работает try??
ни как не могу понять.
как сделать что бы при вводе текста в переменную int выдавал ошибку а не вылетала..

Добавлено через 1 минуту
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
struct  {
    int cod;
    int sent;
} file;
int _tmain(int argc, _TCHAR* argv[])
{int gg,c=0;
FILE* f;setlocale(LC_ALL,"Russian");
    fopen_s(&f,"sfile.txt","wb");
     while (1) {
    
        memset(&file,0,sizeof(file));
        cout << "   код   : ";
        cin>>file.cod;
        cout << "предприятие : ";
        cin>>file.sent;
                    fwrite(&file,sizeof(file),1,f);
        cout << "Хотите закончить?(1-да нет-0 )\n ";cin>>gg;if (gg==1) {break;}
        cout <<"\n ";}
    
    fclose(f);
    fopen_s(&f,"sfile.txt","rb");
    while(fread(&file,sizeof(file),1,f))
    {cout<<c<<".\t";
        cout << file.cod << " " << file.sent << " \n";
    c++;
    } 
    fclose(f);
           getch();
           return 0;
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sannee
Просто хороший человек
 Аватар для sannee
362 / 155 / 12
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 2
29.04.2012, 20:07     try catch для int; #2
обработка исключений работает следующим образом:
C++
1
2
3
4
5
try 
{
блок в котором может произойти исключение
}
catch(класс обрабатываемых исключений) {что-то выполняем}
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
29.04.2012, 20:07     try catch для int; #3
в 17ой строке?

Добавлено через 36 секунд
просто сделайте проверку if( cin >> g){ ... }
sannee
Просто хороший человек
 Аватар для sannee
362 / 155 / 12
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 2
29.04.2012, 20:09     try catch для int; #4
try{cin>>file.cod} catch{cout<<"ошибка";}
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
29.04.2012, 20:10     try catch для int; #5
Цитата Сообщение от sannee Посмотреть сообщение
try{cin>>file.cod} catch{cout<<"ошибка";}
он не выкинет исключение, поток перейдет в состояние fail и установится бит ошибки
rioba
0 / 0 / 0
Регистрация: 16.04.2012
Сообщений: 14
29.04.2012, 20:12  [ТС]     try catch для int; #6
C#
1
2
3
4
5
6
7
8
9
10
11
12
 while (1) {
    try {
        memset(&file,0,sizeof(file));
        cout << "   код   : ";
        cin>>file.cod;
        cout << "предприятие : ";
        cin>>file.sent;
 
        fwrite(&file,sizeof(file),1,f);
        cout << "Хотите закончить?(1-да нет-0 )\n ";cin>>gg;if (gg==1) {break;}}
    catch (...) {cout<<"dsad";}
        cout <<"\n ";}
что я сделал не так???
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
29.04.2012, 20:21     try catch для int; #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main()
{
    std::cin.exceptions(std::istream::badbit | std::istream::failbit);
 
    try
    {
        int value;
        std::cin >> value;
    }
    catch(std::istream::failure&)
    {
        std::cerr << "input error\n";
    }
}
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
30.04.2012, 10:09     try catch для int; #8
Более простой и красивый вариант без исключений:
C++
1
2
3
int x;
if ( !(std::cin >> x) )
   //Ошибка
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2012, 17:06     try catch для int;
Еще ссылки по теме:

C++ Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec
Try - catch - throw для чего они C++
C++ В каком случае надо начинать с int main() или с int _tmain( int argc, _TCHAR* argv[] ) и т.д.?

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

Или воспользуйтесь поиском по форуму:
rioba
0 / 0 / 0
Регистрация: 16.04.2012
Сообщений: 14
02.05.2012, 17:06  [ТС]     try catch для int; #9
проблема что ввод в цикле
while (1)

и после не правильного ввода идет бесконечный вывод текста..
Yandex
Объявления
02.05.2012, 17:06     try catch для int;
Ответ Создать тему
Опции темы

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