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

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

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

try catch для int; - C++

29.04.2012, 20:01. Просмотров 604. Ответов 8
Метки нет (Все метки)

Как работает 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;
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2012, 20:01     try catch для int;
Посмотрите здесь:

C++ для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1);
C++ Преобразовать int в const int для установки размера массива
C++ int\ volatile int \ const int
try catch throw для чего нужны? C++
C++ Написать функцию SUM (int M, int N) / С++ для начинающих
Try - catch - throw для чего они C++
Используя перегрузки, написать функцию для выполнения действий, для следующих типов данных: float, int, double C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sannee
Просто хороший человек
 Аватар для sannee
362 / 155 / 12
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 3
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
Завершенные тесты: 3
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
1921 / 1530 / 139
Регистрация: 31.05.2009
Сообщений: 2,892
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
1921 / 1187 / 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++ Void send(int* to, int* from, int count)
C++ Один блок catch для двух типов исключений порожденных от одного класса
C++ Один catch для нескольих исключений
Написать функции для преобразования IP адреса из dot-decimal нотации в int и из int в dot-decimal нотацию C++
Try/catch. Проверка на ввод букв в int C++

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

Или воспользуйтесь поиском по форуму:
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;
Ответ Создать тему
Опции темы

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