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

Int main()

{

char *string = "test";

cout « "Значение переменной string: " « string

« "\n Значение адреса переменной string : "

<<static_cast (void *) ( string ) << endl;

return 0;

}

Вывод символов с помощью функции-элемента put; сцепленные выводы

Функция-элемент put выводит одиночный символ, как, например, в сле­дующем операторе:

cout.put('A');

который отображает на экране символ А. Вызовы функции put могут быть сцеплен­ные, как, например, в следующем операторе:

cout.put('A'}.put('\n');

Этот оператор выведет на экран букву А, а затем выведет символ новой строки. Как и в случае « предыдущий оператор выполняется таким же способом, поскольку оператор точка (.) имеет ассоциативность слева направо, а функция-элемент put возвращает ссылку на объект, из которого функция put была вызвана. Функция put может также вызываться с помощью вы­ражения, имеющего значение кода ASCII символа; например, выражение cout.put(65) также выводит букву А.

3. Ввод потоков

Рассмотрим теперь операцию ввода потока. Она может быть выполнена с помощью операции взять из потока, т.е. перегруженной операции ». Эта операция обычно игнорирует во входном потоке так называемые символы разделители или пробельные символы (пробелы, знаки табуляции, знак новой строки). Позже мы увидим, каким образом это можно изменить. Операция взять из потока возвращает нулевое значение (false), когда встречает в потоке признак конца файла; в противном случае операция взять из потока возвра­щает ссылку на объект, с помощью которого она вызывалась. Каждый поток содержит набор битов состояния, используемых для управления состоянием потока (форматированием, установкой ошибок потока и т.д.). Операция взять из потока приводит к установке бита failbit при вводе данных неправильного типа и приводит к установке бита badbit при неуспешном завершении опе­рации. В дальнейшем мы увидим, каким образом надо проверять эти биты после операции ввода-вывода.

Операция взять из потока

Для того чтобы прочитать два целых числа, используем объект cin и перегруженную операцию взять из потока », как показано ниже в программе.

#include <iostream.h>

main ( )

{

Int X, у;

cout « "Введите два целых числа: ";

cin » x » у;

cout«"Сумма чисел" « x « " и " « у « " равна « (x + y) « endl;

return 0;

}

Функции-элементы get и getline

Функция-элемент get без аргументов вводит одиночный символ из ука­занного потока (даже, если это символ разделитель) и возвращает этот символ в качестве значения вызова функции. Этот вариант функции get возвращает EOF, когда в потоке встречается признак конца файла.

Приведенная ниже программа демонстрирует использование функций-элемен­тов eof и get для ввода из входного потока cin и использование функции-элемента put для вывода в выходной поток cout. Сначала программа печатает значение cin.eof( ), т.е. 0 (ложь), чтобы показать, что конец файла в cin не достигнут. Пользователь вводит строку текста, завершающуюся признаком конца файла (<ctrl>-z с последующим <return> в IBM-совместимых опера­ционных системах). Программа читает каждый символ и выводит его в cout, используя функ­цию-элемент print. Когда появляется признак конца файла, цикл while за­вершается и снова печатается значение cin.eof( ), равное теперь 1 (истина), чтобы показать, что в cin достигнут конец файла. Заметим, что программа использует вариант функции-элемента get класса istream, который не при­нимает никаких аргументов и возвращает введенный символ.

// Использование функций-элементов get, put и eof.

#include <iostream.h>

main ()

{

Соседние файлы в папке ЛекцииКарасева