Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Введення-виведення типів int i longСодержание книги Поиск на нашем сайте
Читати і записувати дані типів int i long дуже просто, оскільки всю роботу роблять вбудовані механізми вставки і вилучення символів. Коли з потоку вилучаються int i long, система автоматично очищує ввід від служебних символів. Можна управляти вводом і виводом чисел, змінивши наступні атрибути: систему числення (десяткова, вісімкова, шістнадцяткова) ширину поля вирівнювання заповнення поля наявність знака + використання великих букв (для шістнадцяткових чисел) Атрибути змінюються спеціальними маніпуляторами потоку. При виводі по замовчуванню друкуються лише значущі цифри числа без заповнення всіх позицій поля. Під час вводу будь-який символ, що не є цифрою, знаком + (плюс) або – (мінус), припиняє операцію вилучення. Значення, яке повертається, є числом, що складається з символів, зчитаних до завершення операції.
Введення-виведення типів float i double Типи float i double читати і записувати так само легко, як int i long. При вилученні чисел з потоку спочатку пропускаються всі символи пропуску. Вилучення припиняється на першому символі, не допустимому в числі з плаваючою крапкою. Вбудовані механізми вставки і вилучення забезпечують таку поведінку по замовчуванню. Формат, який використовується для відображення float i double, легко змінити за допомогою маніпуляторів. Зокрема, можна керувати наступними атрибутами: кількість десяткових цифр використання наукового запису друк знака + заповнення ширина поля вирівнювання Читання float, double і long double припиняється виявленні недопустимого для числа символу. Недопустимі символи з потоку не вилучаються.
Введення-виведення класів користувача Потоки елегантно працюють не лише з вбудованими типами даних С++, але і з класами користувача. Все, що потрібно зробити, так це перегрузити оператори вставки в потік і вилучення з потоку. Відповідний приклад 3 з використанням класу Point приведено нище.
Приклад 3. Ввід-вивід класу користувача #include <iostream.h>
class Point { float x, y, z; public: Point(float i, float j, float k) {x=i; y=j; z=k;}
friend ostream operator<<(ostream& os, Point& p); friend istream operator>>(istream& is, Point& p); };
ostream& operator<<(ostream& os, Point& p) { return os << ‘(’ << p.x << ‘ ’ << p.y << ‘ ’ << p.z << ‘)’; }
istream& operator>>(istream& is, Point& p) { return is >> p.x >> p.y >> p.z; }
void main() { Point(2, 3, 5); cout << “\n\nCoordinates of p are ” << p;
//отримання нових координат cout << “\nNew coordinates?”; cin >> p;
//відображення нових координат cout << “\nCoordinates of p are ” << p; }
Маніпулятори З появою бібліотеки вводу-виводу ANSI C форматування даних стало більш гнучким. За допомогою функцій printf(...) i sprintf(...) стали доступними як форматований вивід в файл, так і форматування даних в пам’яті. І навпаки, форматовані дані можна зчитати в змінні за допомогою функцій scanf(...) i sscanf(...). Для роботи з будь-яким вбудованим маніпулятором використовується стандартний заголовочний файл iomanip.h. більшість маніпуляторів впливають на потік в наступних операціях з потоком. Це означає, що будь-які зміни в форматуванні потоку зберігаються до тих пір, поки не будуть внесені нові зміни. Нижче приведено список всіх вбудованих маніпуляторів.
dec Встановлює десяткову систему числення. Впливає на int і long. Потоки використовують основу 10 за замовчуванням
hex Встановлює шістнадцяткову систему числення
oct Встановлює вісімкову систему числення
ws Вибирає з потоку вводу символи пропуску. Потік буде читатися до появи символу, який відрізняється від пропуску, або до виникнення помилки потоку
endl Вставляє в потік виводу символ нової стрічки і потім очищає потік
ends Вставляє ‘\0’ в потік виводу
flush Очищає потік виводу
setbase(int) Встановлює основу числення до будь-якого з чотирьох значень: 0: Основа по замовчуванню. При виводі використовується десяткова основа, при вводі – числа, що починаються з ‘0’, вважаються вісімковими, числа, що починаються з ‘0x’, – шістнадцятковими. У всіх інших випадках основа вважається десятковим. 8: Для вводу-виводу використовується основа 8 10: Для вводу-виводу – 10 16: Для вводу-виводу – 16 Інші значення ігноруються. Бібліотека iostream не підтримує довільних основ, подібних 3, 12 і т.д. Якщо потрібно представити значення за основою, яка відрізняється від 8, 10 або 16, то відповідне перетворення потрібно виконати явно
resetiosflags(long) Очищає один або більше флагів форматування в ios::x_flags
setiosflags(long) Встановлює дин або більше флагів форматування в ios::x_flags
setfill(int) Встановлює символ-зповнювач. Символ- заповнювач використовується для заповнення поля тоді, коли ширина поля більша за ширину виведеного значення. Заповнення не буде, якщо користувач не вказав мінімальної ширини поля за допомогою маніпулятора setw(int) або функції ios::width(int). По замовчуванню символом-заповнювачем є пробіл. Заповнення буде проходити справа, зліва або якось іще, в залежності від значення бітів ios::adjustfield, встановлених звертанням до ios::setf(long)
setprecision(int) Встановлює число цифр після десяткової крапки в числах з плаваючою крапкою. Цей маніпулятор діє лише на потоки виводу
setw(int width) Встановлює ширину наступної змінної, яка вставляється в потік. Якщо значення наступної змінної потребує для запису менше місця, ніж вказано, то буде здійснюватися заповнення символом-заповнювачем, встановленим маніпулятором setfill(int)
|
|||||||
Последнее изменение этой страницы: 2016-04-26; просмотров: 294; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.235.171 (0.008 с.) |