Студопедия

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника



Читання слів з клавіатури

Читайте также:
  1. Види читання
  2. Вироблення навичок швидкого читання
  3. З історії становлення методики читання. Основний метод навчання дітей читанню
  4. Набуття умінь правильного читання
  5. Наукові засади методики читання в початкових класах
  6. Облік навичок читання
  7. Освітнє і виховне значення уроків читання. Естетичне виховання на уроках читання
  8. Основні етапи читання
  9. Особливості виразного читання поетичних творів
  10. Передумови виразного читання учнів

Наступна програма використовує cin для читання значення типу long:

# iostream.h>

void main(void)

{

long value;

cout « "Введіть велике число і натисніть Enter: ";

cin » value;

cout « "Вило введено число " « value « endl;}


 

Форматування введення-виведення засобами мови С++

Існують два способи форматування введення/виведення.

Перший спосіб передбачає використання функцій для установки певних прапорів форматування, які перераховані в класі ios_base

enum { skipws = 0x0001 left = 0x0002 right = 0x0004 internal = 0x0008 dec = 0x0010 oct = 0x0020 hex = 0x0040 showbase = 0x0080 showpoint = 0x0100 uppercase = 0x0200 showpos = 0x0400 scientific = 0x0800 fixed = 0x1000 unitbuf = 0x2000 stdio = 0x4000 };

Розглянемо що роблять перераховані вище прапори.

Прапор Опис  
skipws Наступні на початку символи-роздільники (пропуски, символи табуляції і нового рядка) при виконанні введення відкидаються.
left Здійснюється введення з лівим вирівнюванням
right Здійснюється введення з правим вирівнюванням (за умовчанням)
internal Знак або префікс системи числення вирівнює зліва, число вирівнює справа
dec Чисельні значення виводяться в десятковій формі (за умовчанням)
oct Чисельні значення виводяться у вісімковій формі
hex Чисельні значення виводяться в шістнадцятковій формі
showbase Дозволяє при виведенні указувати числову базу (десяткову, вісімкову, шістнадцяткову)
showpoint Приводить до виведення десяткової коми і нулів справа для всіх чисел з плаваючою комою поза залежністю, потрібно це чи ні
uppercase При виведенні чисел з плаваючою крапкою при використанні експоненціальної форми виводиться велика буква E. Також при виведенні чисел в шістнадцятковій формі символ 'x' виводиться у верхньому регістрі.
showpos Призводить до того, що перед додатнім числом буде виводиться знак "+"
scientific Числа з плаваючою комою виводяться з використанням наукової нотації
fixed Числа з плаваючою комою виводяться в нормальній нотації
unitbuf При кожній операції вставки виведення дані негайно заноситься в потік
             

Тепер необхідно познайомитися з функціями, які встановлюють і скидають ці прапори.



Перша функція, яку ми розглянемо, - це функція setf(), використовувана для установки прапорів

long setf(long flags);

Функція приймає як параметр розглянуті вище прапор або прапори, сполучені між собою за допомогою побітового АБО. Вона повертає попереднє значення прапора. Розглянемо приклад:

cout.setf(ios::hex); cout.setf(ios::showpos); cout<<123<<" "<<123.45<<"\n"; cout<<67<<" "<<678.9<<"\n";виведе на екран 7b +123.45 43 +678.9 теж саме буде на екрані після виконання наступного коду cout.setf(ios::hex | ios::showpos); cout<<123<<" "<<123.45<<"\n"; cout<<67<<" "<<678.9<<"\n";

Для відключення встановлених прапорів потрібно використовувати функцію unsetf(). Вона має наступний прототип:

long unsetf(long flags);

Функція повертає значення попередньої установки прапора і скидає прапори, визначувані параметром flags. Приклад:



cout.setf(ios::showpos | ios::hex); cout<<123<<" "<<123.45<<"\n"; cout.unsetf(ios::showpos | ios::hex); cout<<123<<" "<<123.45<<"\n";виведе на екран 7b +123.45 123 123.45

Окрім прапора форматування також можна встановити ширину поля потоку, символ для заповнення і число цифр після десяткової коми. Для цього використовуються наступні функції:

int width(int len);char fill(char ch);int precision(int num);

Функція width() встановлює ширину поля і повертає поточну ширину. Друга функція - fill() встановлює поточний символ заповнення і повертає попередній символ заповнення. За умовчанням використовується пропуск. А функція precisionвстановлює точність чисел з плаваючою крапкою. У науковому режимі ця функція визначає кількість цифр після десяткової коми. У звичайній нотації функція позначає кількість цифр, що виводяться. Точність, встановлена за умовчанням, рівна 6. Функція width() впливає тільки на одне виведення інформації, а після цього в дію вступають параметри прийняті за умовчанням. У випадку з рештою двох функцій нові установки залишаються діяти до їх явного оновлення. Приведемо приклад:

cout.width(10); cout.fill('*'); cout<<123<<"\n"; cout.width(10); cout<<456<<"\n\n"; cout<<"Using precision\n"; floatprice1 = 20.405f; floatprice2 = (float)1.9+8.0/9.0; cout<<price1<<"\n"<<price2<<"\n\n"; cout.precision(2); cout<<price1<<"\n"<<price2<<"\n\n"; cout.setf(ios::scientific); cout<<price1<<"\n"<<price2<<"\n\n"; виведе на екран *******123 *******456 Using precision 20.405 2.78889 20 2.8 2.04e+001 2.79e+000

Другий спосіб - це використання маніпуляторів.

Маніпулятори є спеціальними функціями, які дозволяють змінювати прапори потоку. Існують маніпулятори з параметрами і без. Якщо Ви використаєте маніпулятори з параметрами, підключите файл iomanip.h

Маніпулятори без параметрів:


Дата добавления: 2014-12-03; просмотров: 38; Нарушение авторских прав


<== предыдущая лекция | следующая лекция ==>
Порядок обчислення виразів | Форматування введення-виведення засобами мови С
lektsii.com - Лекции.Ком - 2014-2017 год. (0.01 сек.) Главная страница Случайная страница Контакты