|
Программирование >> Элементы языков с и с++
for getchar0,putcharо for getchO atoiO ,atof 0 ttdefine eof -1 ttdefine maxline 1000 Ctrl+z /* Функция getline(s,lim) вводит с клавиатуры строку в s и возвращает длину введенной строки с учетом символа \0; lim - максимальное количество символов, которое можно ввести в строку s*/ int getline(char s[],int lim) { int c,i; for(i=0; i<lim-l && (c=getchar()) != eof && с != Xn; i++) s[i]=c; s[i]=\0; i++; для учета количества return(i); ------------------------------------------- int tmain() { char *buf; try buf = new char[10]; отвели место для строки из 10 символов getline(buf,200); ошиблись : макс, длина строки задана в 200 символов throw 1; этот оператор выбросит исключение, если оно возникнет ttinclude stdafx.h ttinclude <stdio.h> ttinclude <conio.h> ttinclude <stdlib.h> int i=buf[0]; } catch(int) { printf( Convertion Exception!\n ); catch (...) обработчик исключения любого типа (должен быть последним) ( Console:: WriteLine (L McKTO4eHHe! ) ; printf ( Raised Exception! \n ) ; Г :\WINDOWS\system32Vcmd.exe .a23456789 1 Kaised Exception? iina продолжения нажмите любую клавишу Рис. 13.2. Обработка преобразования данных Заметим, что первым сработал самый внутренний обработчик. Если бы преобразование в число было правильным, то сработал бы уже внешний обработчик (рис. 13.3) (если бы было превышение количества введенных символов). ~ C:\WINOOWS\system32\cm(J.exe 4.2345678 Raised Exception? я продолжения нажмите любую клавишу Рис. 13.3. Обработка превышения размера строки При обработке исключений можно задавать классы типов HCKjno4eHHH. Например, обрабатывать все исключительные ситуации из класса исключений, возникающих при выполнении арифметических операций, и т. п. Все гипы таких классов расположены в пространстве System. В табл. 13.1 представлены некоторые такие классы.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |