ПредишенСледващото

11.7.7. контрол О в горната и долната случай

Flag IOS :: главни комплекти формулирам главни букви X и E в шестнадесетичен и експоненциални формати, съответно (виж. Ris.11.27). Когато IOS :: главни флаг е установен, всички писма шестнадесетичен формат-нето се отпечатват с главни букви.

Използването на ЗИ на флага :: с главни букви са включени курортните включени курортните

Cout <

<<Печать в верхнем регистре чисел в экспоненциальном формате

Endl и шестнадесетични стойности: Endl <<4.345el0 endl hex 123456789 endl; return 0;

Отпечатване главни форматирате числа в eksponentsioshnom

и шестнадесетичен enacheny:

Фиг. 11.27. Използването на ЗИ на флага :: с главни букви

11.7.8. Задайте и ясни знамена формат (знамена, setiosflags

Ако елемент разполага знамена без аргументи, просто се връща текущите настройки на флаговете за формат като стойност от тип дълго. Функция на елементите знамена с аргумент от тип дълъг определя флаговете за формат, посочени

Показване на формата по подразбиране: 0.001235 1.946e + 09

Дисплей в научна нотация: 1.2345b7e 1.94bv-03 + 09

Показване на формата по подразбиране след unsetf: 0.001235 1.94be + 09

Показва под формата на фиксирана точка: 0.001235 1946000000

Фиг. 11.26. Показани стойности с плаваща точка в стандартния формат, експоненциална и фиксирана точка

двойно г = 0.0947628;

Cout <<Значение переменной flags равно. A cout. flags () endl

<<Печать данных типа int и double в исходном формате: endl

/ 1 I \ т г Endl Endl;

дълго originalFormat = cout.flags (IOS :: октомври IOS :: научна); Cout стойност на променливите знамена, равни на: аз Cout. знамена 0 Endl

<<Печать данных типа int и double в новом формате, endl

чрез предварително определени елемент флагове функция: Endl аз \ т г Endl Endl; cout.flags (originalFormat);

Cout <<Значение переменной flags равно: cout.flags О endl

<<Повторная печать данных в исходном формате: <

Стойността на променливите знамена е: 1

тип Int и двойни данни печат в оригиналния формат: 1000 0.094763

Стойността на променливите знамена е: 4040 тип печат вътр и двойни данни в нов формат, като се използват предварително определени функционални елементи знамена: 1750 9.47628e-02

Стойността на променливите флагове е: 1: Y Повторни данни за печат в оригиналния формат: т 1 000 0.094763

Фиг. 11.28. Приложение-елемент функция флагове

функция setf-елемент формат определя знамена, определени като аргумент и връща към предишната настройка на флаговете под формата на стойности от тип дълъг, които могат да се съхраняват, както е показано по-долу:

с аргумент, и се връща на предишните настройки и знамена. Всички знамена формати, които не са дефинирани в аргумента за знамена функция елемент остават в първоначалното състояние. Имайте предвид, че първоначалната настройка на флаговете всяка система може да варира. Програмата е показано на фиг. 11.28, демонстрира използването на знамена функция елемент, за да настроите новия формат на държавата и запазване на предишното си състояние, с последващо намаление от форматите на първоначалните настройки.

figll 28.cpp Ni II демонстрационни флагове функция елемент. iinclude

11.8. поток условия за грешки

състояние на потока може да се провери с помощта на ЗИ клас бита - за базови класове istream, ostream и iostream, които се използват за IO.

Eofbit бита за вход се задава автоматично, когато се натъкне на края на файла. Програмата може да се използва EOF функция елемент, за да се определи дали потока отговаря край на файл. повикване

Връща TRUE, ако срещна CIN края на файла, и фалшива друго.

Failbit малко е настроен да тече, ако възникне грешка поток формат, но знаците не се губят. Функция елемент провали определя дали е имало повреда в потока на работа; обикновено след неуспешни данни за транзакциите могат да бъдат възстановени.

badbit малко е настроен за поток при възникване на грешка, което води до загуба на данни. Bad функция елемент определя дали операцията е имал вина с такива потоци. С такива сериозни данни за грешка по принцип не е възстановена.

Bit набор goodbit тече ако никой от бита eofbit, failbit и badbit не е инсталиран.

Функция на елементите на добра възвръщаемост вярно, ако за даден поток всички лоши черти, не успяват и EOF трябва да се върнат фалшиви. операция вход-изход може обикновено само извършва с такава добра (добро) потоци.

Функцията връща грешки състояние на потока на елемент rdstate. Call cout.rdstate, например, да се върне в състояние на движение, което след това може да се използва в изявление превключвател, който да проверява IOS :: eofbit, IOS :: лошо-битов, IOS :: failbit и IOS :: goodbit. Но по-удобно средство за проверка на състоянието е да използвате функциите на елементите EOF, лош, се провали и добра. Използването на тези функции не изисква програмист да работи с отделни битове на състоянието.

Функция-ясен елемент обикновено се използва за възстановяване на потока, в нормално състояние (когато функцията елемент добри връща истинските), с които е възможно да се продължи действието на входно-изходни потоци. за

Функция елемент setf отнема два аргумента от тип дълго:

Този оператор първоначално изчиства битови IOS :: adjustfield, а след това определя IOS :: левия флаг. Това изпълнение setf флаг засяга областите на битови, свързани с IOS :: basefield (съдържа IOS :: Dec, IOS :: в ОСТ и IOS :: шестнадесетичен), с IOS :: floatfield (съдържа IOS :: научна и IOS :: фиксирана) и IOS :: adjustfield (codepzhit IOS :: напуснали, IOS :: право и IOS :: вътрешни).

Функция елемент unsetf нулира тези знамена и връща стойностите на тези знамена, които са съществували преди това.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!