Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
150
Добавлен:
10.05.2014
Размер:
3.61 Mб
Скачать
      1. Ввод данных

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

cin >> переменная_1 >> переменная_2 >> ...

переменная_1, переменная_2, ... определяют объекты программы (простые переменные, элементы массивов и др.), значения которых вводятся. Например:

int i; double d; char c;

cin >> i >> d >> c;

Потоковый ввод также является буферизованным; это означает, что данные извлекаются из специального буфера ввода. Заполнение буфера осуществляется только после нажатия клавиши “enter”; следовательно, в буфере ввода всегдаприсутствует символ новой строки, который относится кпробельнымсимволам (пробельные символы – это символы пробела, табуляции и новой строки).

Правила ввода:

  1. Пропускаются (игнорируются) лидирующие пробельные символы (до первого не пробельного);

  2. Извлекаются символы, соответствующие спецификации формата, до первого не соответствующего спецификации символа или первого пробельного символа;

  3. Выполняется необходимое преобразование введенного значения;

  4. Все невостребованные символы (в том числе и символы новой строки) остаются во входном потоке и могут быть извлечены при выполнении следующей операции ввода.

Например, пусть для приведенного выше примера ввода на клавиатуре нажимались следующие клавиши:

Тогда в результате ввода целой переменной iбудет присвоено значение12(во внутреннем, машинном представлении), вещественной переменнойd- значение2.8, а символьной переменнойc- ASCII-код буквыa; во входном потоке останутся символыgfи символ новой строки.

Для ввода одного любого (в том числе и пробельного) символа можно воспользоваться следующими специальными функциями:

  1. cin.get(имя_переменной);

  2. имя_переменной= cin.get();-

Ввод строки символов можно выполнить двумя способами, дающими разные результаты:

  1. с помощью оператора >> :

char str[80];

cin >> str;

в этом случае действуют те же приведенные выше правила извлечения из потока; в результате будет выделен текст, не содержащий пробелов. Введенная строка будет завершены символом конца строки – нуль байтом (‘\0’).

Например, если с клавиатуры был введен следующий текст:

Тогда в массив strбудет записано:

а в буфере ввода останутся символы:

  1. с помощью специальной функции:

cin.getline(куда,максимум_сколько);

в этом случае из буфера извлекаются все символы, пока не встретится символ новой строки (включая и сам символ; в результате буфер ввода станет пустым) или не будет извлечено указанное количество символов (тогда в буфере ввода останутся не извлеченные символы). Введенная строка также будет завершена символом конца строки.

Например:

char str[80];

cin.getline(str, 80);

Если с клавиатуры вводится все тот же текст, тогда в массив strбудет записано:

Буфер ввода останется пустым.

При вводе с клавиатуры можно эмулировать состояние “конец файла” нажатием клавиш Ctrl-z. В этом случае функции ввода возвращают специальное значение: обычно NULL(в случае b кодEOF; эти две именованные константы определены в файле-заголовке).

    1. Правила вычисления выражений в С++. Преобразования типов.

Понятие и определение выражений в С++. Классификация операторов. Приоритеты и правило ассоциативности. Характеристика основных операторов языка. Особенности выполнения некоторых операторов языка (сдвига и отношения для unsigned данных, логических операторов-связок).

Предложения языка, их классификация. Правила записи и использования предложений.

  1. Понятие предложений языка С++. Классификация предложений. Пустое и составное предложения, их синтаксис.

  2. Вычислительные предложения, их синтаксис и назначение. Выражение вызова функций. Примеры.

  3. Предложения цикла: классификация, назначение. Конструкции while, forиdo ... while.Синтаксис, правила выполнения. Примеры.

  4. Условное предложение: синтаксис, правила выполнения. Примеры.

  5. Переключатель: синтаксис, правила выполнения. Примеры.

  6. Предложения разрыва – break, continue, return. Синтаксис, правила выполнения, примеры.

Функции: описание и определение функций, понятие прототипа функции. Вызов функции. Правила передачи в функцию аргументов разных типов. Рекурсивные функции.

Соседние файлы в папке docs