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

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

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

try catch для int; - C++

29.04.2012, 20:01. Просмотров 637. Ответов 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;
Посмотрите здесь:

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

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

для чего нужна эта строчка в с++ 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++
Есть код программы принимающей температуру и заводит в вектор, она еще не доработана, Страуструп пишет что защиту от ошибок можно сделать с...

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

Написать функции для преобразования IP адреса из dot-decimal нотации в int и из int в dot-decimal нотацию - C++
IP-адрес - это четверка a.b.c.d, где a, b, c, d целые числа из интервала . Требуется написать функции encode и decode: unsigned int...

Один блок catch для двух типов исключений порожденных от одного класса - C++
Товагищи!! Имеется задача с книги С. Прата с++11. Не могу реализовать следующее : Вот к чему пришел #include &lt;iostream&gt; #include...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sannee
Просто хороший человек
363 / 156 / 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
Просто хороший человек
363 / 156 / 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
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,908
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
1927 / 1193 / 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;
Еще ссылки по теме:

Ошибка - перегруженность pow(int,int) неосуществима. Как исправить? - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; struct point { int x,y,z; }; double dlina(point a,point b) { ...

Работа с массивом - Invalid types 'int[int]' for array subscript - C++
Добрый день. Данный код выдает ошибку invalid types 'int' for array subscript в функции в строке cout &lt;&lt;dm; Не понимаю в чем ошибка....

Правильное объявление переменной с точки зрения стиля [int *a vs int* a] - C++
И всё таки, как корректней объявлять переменные? 1. int* a, int&amp; a, int** a или 2. int *a, int &amp;a, int **a ?

Error С2664. Параметр 1 не может быть преобразован из 'int' в 'int [][10]' - C++
Добрый день! Компилятор &quot;ругается&quot; на описание функции. Как устранить данную проблему самому не знаю. Заранее благодарю за помощь! ...

error C2664: itoa: невозможно преобразовать параметр 1 из 'int *' в 'int' + запись в файл - C++
Подскажите пожалуйста как быть... в конструктор приходит *int и мне нужно создать файл, с именем таким же, что и значение, которое приходит...


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

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

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