Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
rioba
0 / 0 / 1
Регистрация: 16.04.2012
Сообщений: 31
#1

try catch для int; - C++

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

Как работает try??
ни как не могу понять.
http://www.cyberforum.ru/cpp-beginners/thread1810935.html
как сделать что бы при вводе текста в переменную 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;
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2012, 20:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос try catch для int; (C++):

Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec
Вот есть заголовочный файл // Заголовочный файл Vector.h #ifndef VECTOR_H...

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

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

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

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

8
sannee
Просто хороший человек
368 / 161 / 21
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 4
29.04.2012, 20:07 #2
обработка исключений работает следующим образом:
C++
1
2
3
4
5
try 
{
блок в котором может произойти исключение
}
catch(класс обрабатываемых исключений) {что-то выполняем}
0
panicwassano
594 / 562 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
29.04.2012, 20:07 #3
в 17ой строке?

Добавлено через 36 секунд
просто сделайте проверку if( cin >> g){ ... }
0
sannee
Просто хороший человек
368 / 161 / 21
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 4
29.04.2012, 20:09 #4
try{cin>>file.cod} catch{cout<<"ошибка";}
0
panicwassano
594 / 562 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
29.04.2012, 20:10 #5
Цитата Сообщение от sannee Посмотреть сообщение
try{cin>>file.cod} catch{cout<<"ошибка";}
он не выкинет исключение, поток перейдет в состояние fail и установится бит ошибки
1
rioba
0 / 0 / 1
Регистрация: 16.04.2012
Сообщений: 31
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 ";}
что я сделал не так???
0
rangerx
1941 / 1550 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
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";
    }
}
0
diagon
Higher
1937 / 1203 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
30.04.2012, 10:09 #8
Более простой и красивый вариант без исключений:
C++
1
2
3
int x;
if ( !(std::cin >> x) )
   //Ошибка
0
rioba
0 / 0 / 1
Регистрация: 16.04.2012
Сообщений: 31
02.05.2012, 17:06  [ТС] #9
проблема что ввод в цикле
while (1)

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

Что означает ошибка too few arguments to function ‘int my_func(int, int)’ (язык C++)?
В чём проблема? #include &lt;iostream&gt; int my_func (int i, int j){ int z; ...

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

Один catch для нескольих исключений
У меня есть функция, которая бросает исключения, если выполняется условие. Эту...

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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