Стефан Дэвис - С++ для чайников .

Здесь есть возможность читать онлайн «Стефан Дэвис - С++ для чайников .» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2007, ISBN: 2007, Издательство: Издательский дом Вильямс. Компьютерное издательство Диалектика, Жанр: Технические науки, Программирование, Программы, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

С++ для чайников .: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «С++ для чайников .»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

empty-line
1
empty-line
4

С++ для чайников . — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «С++ для чайников .», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

<< 10 /* ...для 10 , но... */

<< 20 /* для 20 равна значению по умолчанию */

<< "\n" ;

}

В результате выполнения этого кода сначала будет выведено восьмисимвольное целое число, а за ним — двухсимвольное. Для вывода двух восьмисимвольных значений нужно сделать так:

#include

#include

void fn( )

{

cout << setw( 8 )/* установить ширину... */

<< 10

<< setw( 8 )

<< 20 /* ...обновить её */

<< "\n" ;

}

Таким образом, если вам нужно вывести несколько значений, но вас не устраивает длина поля по умолчанию, для каждого значения необходимо включать в вывод манипулятор setw( ) .

Какой же метод лучше — с использованием манипуляторов или функций? Функции-члены предоставляют больше контроля над свойствами потока — хотя бы потому, что их больше. Кроме того, функции-члены обязательно возвращают предыдущее значение изменяемого параметра, так что у вас всегда есть возможность восстановить прежнее значение параметра. И наконец, существуют версии этих функций, позволяющие узнать текущее значение параметра, не изменяя его. Использование этой возможности показано в приведённом ниже примере.

#include

void fn( float value )

{

int previousPrecision ;

/* Вы можете узнать текущую точность так: */

previousPrecision = cout.precision( ) ;

/* Можно также сохранить старое значение, одновременно изменяя его на новое */

previousPrecision = cout.precision( 2 ) ;

cout << value ;

/* Восстановим предыдущее значение */

cout.precision( previousPrecision ) ;

}

Несмотря на все преимущества "функционального" подхода, манипуляторы более распространены; возможно, это просто потому, что они "круче" выглядят. Используйте то, что вам больше нравится, но в чужом коде будьте готовы увидеть оба варианта.

_________________

289 стр. Глава 24. Использование потоков ввода-вывода

Глава 25. ОБРАБОТКА ОШИБОК И ИСКЛЮЧЕНИЯ...290

ОГЛАВЛЕНИЕ

В этой главе...

►Зачем нужен новый механизм обработки ошибок 291

►Механизм исключительных ситуаций 293

►Так что же мы будем бросать? 295

Трудно с этим смириться, но факт остаётся фактом: иногда функции работают неправильно. Традиционно вызывающей программе сообщается об ошибке посредством возвращаемого функцией значения. Однако язык С++ предоставляет новый, улучшенный механизм выявления и обработки ошибок с помощью исключительных ситуаций, или просто исключений ( exceptions). Исключение — это отступление от общего правила, т.е. случай, когда то или иное правило либо принцип неприменимы. Можно дать и такое определение: исключение — это неожиданное ( и, надо полагать, нежелательное ) состояние, которое возникает во время выполнения программы.

Механизм исключительных ситуаций базируется на ключевых словах try ( попытаться, пробовать, попытка [ trai ] [трай] ), throw ( бросить, бросание, бросок [ θrou ] [сроу] ) и catch ( поймать, схватить, ловить [ kætʃ ] [кэчь] ). В общих чертах этот механизм работает так: функция пытается ( пробует — try ) выполнить фрагмент кода. Если в коде содержится ошибка, функция бросает ( генерирует — throw ) сообщение об ошибке, которое должна поймать ( перехватить — catch ) вызывающая функция. Это продемонстрировано в приведённой ниже программе.

//

/* FactorialException — демонстрация исключений */

/* при использовании факториала */

//

#include

#include

#include

#include

using namespace std ;

/* factorial — вычисление факториала */

int factorial( int n )

{

/* Функция не обрабатывает отрицательные значения аргумента */

if ( n < 0 )

{

throw string( "Аргумент отрицателен" ) ;

}

/* Вычисляем факториал */

int accum = 1 ;

while ( n > 0 )

{

accum *= n ;

_________________

290 стр. Часть 5. Полезные особенности

n-- ;

}

return accum ;

}

int main( int nNumberofArgs , char* pszArgs[ ] )

{

/* печать кириллицы, если Вы не установите программки gccrus.exe и g++rus.exe */

setlocale ( LC_ALL , ".1251" ) ;

try

{

/* Здесь всё в порядке */

cout << "3! = " << factorial( 3 ) << endl ;

/* Здесь генерируется исключение */

cout << "-1!= " << factorial( -1 ) << endl ;

/* Этот код так и остаётся не выполнен */

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «С++ для чайников .»

Представляем Вашему вниманию похожие книги на «С++ для чайников .» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «С++ для чайников .»

Обсуждение, отзывы о книге «С++ для чайников .» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x