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

3. Введення-виведення типів char I char*

Символьні операції в потоках гранично прості, оскільки не потребують ніякого форматування. Зчитуючи дані з потоку, треба мати на увазі, що все, що зчиталося, розглядається як символи, в тому числі і роздільники (або символи пропуску – while space character). Роздільниками є пробіл, табуляція, переведення стрічки або символ, який зазвичай використовується для розділення елементів даних. Якщо серед символів, що зчитуються, є службові, то вони повинні бути оброблені самим програмістом або маніпулятором, котрому явно належить це зробити. Приклад 2 показує вилучення символів з потоку.

Приклад 2. Коротка програма, що вилучає символи з потоку

#include <iostream.h>

void main()

{

char c;

cout << “\nHit a key ”;

cin >> c;

cout << “\nThe key typed was: ” << c;

}

Програма відображає на екрані повідомлення і потім чекає натискання довільної клавіші і повернення каретки. Після цього за допомогою оператора вилучення читається потік cin, і прочитане значення використовується в операторі виводу. Щоб ввести дані в програму, користувач повинен натиснути <Enter>. Читання вхідного символа без натискання <Enter> можна виконати за допомогою непотокової функції, що підтримує ввід необроблених даних, наприклад getch() або getche():

char c = gecht();

якщо програма буде вимагати саме такої поведінки потоку cin, то слід створити новий похідний клас, що забезпечує потрібну поведінку.

4. Введення-виведення типів int I long

Читати і записувати дані типів int i long дуже просто, оскільки всю роботу роблять вбудовані механізми вставки і вилучення символів. Коли з потоку вилучаються int i long, система автоматично очищує ввід від служебних символів.

Можна управляти вводом і виводом чисел, змінивши наступні атрибути:

систему числення (десяткова, вісімкова, шістнадцяткова)

ширину поля

вирівнювання

заповнення поля

наявність знака +

використання великих букв (для шістнадцяткових чисел)

Атрибути змінюються спеціальними маніпуляторами потоку. При виводі по замовчуванню друкуються лише значущі цифри числа без заповнення всіх позицій поля. Під час вводу будь-який символ, що не є цифрою, знаком + (плюс) або – (мінус), припиняє операцію вилучення. Значення, яке повертається, є числом, що складається з символів, зчитаних до завершення операції.

5. Введення-виведення типів float I double

Типи float i double читати і записувати так само легко, як int i long. При вилученні чисел з потоку спочатку пропускаються всі символи пропуску. Вилучення припиняється на першому символі, не допустимому в числі з плаваючою крапкою. Вбудовані механізми вставки і вилучення забезпечують таку поведінку по замовчуванню.

Формат, який використовується для відображення float i double, легко змінити за допомогою маніпуляторів. Зокрема, можна керувати наступними атрибутами:

кількість десяткових цифр

використання наукового запису

друк знака +

заповнення

ширина поля

вирівнювання

Читання float, double і long double припиняється виявленні недопустимого для числа символу. Недопустимі символи з потоку не вилучаються.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]