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

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

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

try catch для int; - C++

29.04.2012, 20:01. Просмотров 647. Ответов 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++):

Try/catch. Проверка на ввод букв в int - C++
Как сделать проверку на ввод букв в переменную типа int? Хочу это реализовать через try/catch, но никак не могу разобраться как это...

Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec - C++
Вот есть заголовочный файл // Заголовочный файл Vector.h #ifndef VECTOR_H #define VECTOR_H #include &lt;iostream&gt; using...

Преобразовать int в const int для установки размера массива - C++
Добрый вечер всем! Столкнулся с такой нестандартной проблемой. Нужно преобразовать значения типа int в const int, чтоб константная...

Написать функцию SUM (int M, int N) / С++ для начинающих - C++
Написать функцию SUM (int M, int N), которая вычисляет и возвращает сумму всех чисел кратных 3 и 9 в пределах от M и N включительно ....

Ошибка при компиляции error: cannot convert ‘int (*)[5]’ to ‘int**’ for argument ‘1’ to ‘void Replase(int**)' - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; #define row 5 #define col 5 using namespace...

В каком случае надо начинать с int main() или с int _tmain( int argc, _TCHAR* argv[] ) и т.д.? - C++
Не понимаю, с чего начинать. Заранее спс.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
sannee
Просто хороший человек
363 / 156 / 12
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 3
29.04.2012, 20:07 #2
обработка исключений работает следующим образом:
C++
1
2
3
4
5
try 
{
блок в котором может произойти исключение
}
catch(класс обрабатываемых исключений) {что-то выполняем}
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
29.04.2012, 20:07 #3
в 17ой строке?

Добавлено через 36 секунд
просто сделайте проверку if( cin >> g){ ... }
sannee
Просто хороший человек
363 / 156 / 12
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 3
29.04.2012, 20:09 #4
try{cin>>file.cod} catch{cout<<"ошибка";}
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
29.04.2012, 20:10 #5
Цитата Сообщение от sannee Посмотреть сообщение
try{cin>>file.cod} catch{cout<<"ошибка";}
он не выкинет исключение, поток перейдет в состояние fail и установится бит ошибки
rioba
0 / 0 / 0
Регистрация: 16.04.2012
Сообщений: 14
29.04.2012, 20:12  [ТС] #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
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
29.04.2012, 20:21 #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
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
30.04.2012, 10:09 #8
Более простой и красивый вариант без исключений:
C++
1
2
3
int x;
if ( !(std::cin >> x) )
   //Ошибка
rioba
0 / 0 / 0
Регистрация: 16.04.2012
Сообщений: 14
02.05.2012, 17:06  [ТС] #9
проблема что ввод в цикле
while (1)

и после не правильного ввода идет бесконечный вывод текста..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2012, 17:06
Привет! Вот еще темы с ответами:

для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1); - C++
вот int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1);

Try - catch - throw для чего они - C++
Есть код программы принимающей температуру и заводит в вектор, она еще не доработана, Страуструп пишет что защиту от ошибок можно сделать с...

try catch throw для чего нужны? - C++
Для чего нужны эти операторы? Линканите пожалуйста статью, где доходчиво объяснено их применение, в разных вариантах (например я видел...

Один catch для нескольих исключений - C++
У меня есть функция, которая бросает исключения, если выполняется условие. Эту функцию я вызываю в main() несколько раз. Для каждого вызова...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.05.2012, 17:06
Ответ Создать тему
Опции темы

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