Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
метод_к_курс_раб.pdf
Скачиваний:
20
Добавлен:
18.03.2015
Размер:
621.71 Кб
Скачать

16

int bad(); - возвращает ненулевое значение, если произошла ошибка (установлен флаг badbit);

int good(); - возвращает ненулевое значение, если не установлен ни один флаг состояния (ошибок нет);

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

void clear ( int = 0); - устанавливает состояние потока в нуль.

4.3. Ввод/вывод для типов, определенных пользователем

Чтобы использовать операции обмена >> и << с данными производных типов, определяемых пользователем, необходимо расширить действие указанных операций, введя новые операции функции. Каждая из операций обмена << и >> бинарная, причем левым операндом служит объект, связанный с потоком, а правый операнд должен быть желаемый тип.

Основая форма всех пользовательских функций вывода:

ostream &operator << (ostream &stream, имя_класса объект)

{

// тело пользовательской функции вывода return stream;

}

Первый параметр является ссылкой на объект типа ostream. Это означает, что поток stream должен быть потоком вывода. (Класс ostream является производным от класса ios.) Второй параметр получает выводимый объект. (Он, если для Вашего приложения это нужно, тоже может быть параметром-ссылкой.) Пользовательская функция вывода возвращает ссылку на поток stream, который имеет тип ostream. Это необходимо, если перегруженный оператор << должен использоваться в ряде последовательных выражений ввода/вывода:

cout << ob1 << ob2 << ob3;

17

Внутри пользовательской функции вывода можно выполнить любую процедуру.

Основая форма всех пользовательских функций ввода:

istream &operator >> (istream &stream, имя_класса &объект)

{

// тело пользовательской функции ввода return stream;

}

Пользовательские функции ввода возвращают ссылку на поток istream, который является потоком ввода. Первый параметр тоже является ссылкой на поток ввода. Второй параметр – это ссылка на объект, получающий вводимую информацию.

Перегруженные функции ввода и вывода могут использоваться без каких-либо изменений и для файлов. Однако вывод на экран и в файл может отличаться (например, при выводе в файл в качестве символаразделителя между данными используется пробел, а вывод на экран необходимо представить в виде таблице с каким-то другим символомразделителем). В таких ситуациях в программе предусматривается операция-функция для вывода на экран и операция-функция для вывода в файл. Основные формы операций-функций ввода и вывода для файлов аналогичны, только вместо потока istream указывается поток ifstream, а поток ostream заменяется ofstream.

18

Литература

1.Нейбауэр. А. Моя первая программа на C/C++./ Пер. с англ. – СПб.:

Питер, 1996.

2.Шилдт. Г. Самоучитель С++ 3-е изд./ Пер. с англ. – СПб.: BHV-Санкт- Петербург, 1998.

3.Подбельский В.В., Фомин С.С. Программирование на языке Си. -

М.:Финансы и статистика, 1999.

4.Подбельский В.В. Язык Си++. - М.:Финансы и статистика, 1999.

5.Касаткин А.И., Вальвачев А.Н. От Turbo C к Borland C++/ Под ред. А.И.Касаткина. – Минск:Вышейшая школа, 1992.

6.Березин Б.И., Березин С.Б. Начальный курс С и С++. –М.: Диалог-

Мифи, 1996.

19

Приложение 1 Образец оформления титульного листа курсовой работы

Министерство образования Российской Федерации Северо-Западный государственный заочный технический университет

Факультет информатики и систем управления

Кафедра системотехники и ЭВМ

Курсовая работа

по дисциплине

Программирование на языке высокого уровня

Студента ________________________________

Шифр ____________ Группа ______________

Дата защиты _____________________________

Оценка ________________

Санкт-Петербург

2002