КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Читання слів з клавіатуриНаступна програма використовує 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 };Розглянемо що роблять перераховані вище прапори.
Тепер необхідно познайомитися з функціями, які встановлюють і скидають ці прапори. Перша функція, яку ми розглянемо, - це функція 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 Маніпулятори без параметрів:
|