Programare structurată

11.7.7. Controlul ieșirii în registrele inferioare și superioare

Steagul ios :: majuscule reglează ieșirea în majuscule a simbolurilor X și E în format hexazecimal și respectiv exponențial (a se vedea Figura 11.27). Când este setat stegul ios :: majuscule, toate literele formatului hexazecimal sunt tipărite cu majuscule.







Folosind pavilonul ios :: iclude cu majuscule iclude

cout <

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

endl și valori hexazecimale: endl <<4.345el0 endl hex 123456789 endl; return 0;

Imprimarea în majusculă a numerelor în format exponențial

și valorile hexazecimale:

Fig. 11.27. Folosind pavilonul ios :: majuscule

11.7.8. Configurarea și resetarea semnelor de format (steaguri, setiosflags

Dacă funcția de pavilioane nu are un argument, aceasta returnează pur și simplu setările de formate ale formatelor curente ca o valoare lungă. Funcțiile de steaguri cu un argument lung stabilesc steagurile de formate specificate

Afișare în format implicit: 0.001235 1.946e + 09

Afișajul în format exponențial: 1.2345b7e-03 1.94bv + 09

Afișați în format implicit după unsetf: 0.001235 1.94be + 09

Afișare în format punct fix: 0.001235 1946000000

Fig. 11.26. Afișați valorile în virgulă mobilă în formate standard, exponențială și punct fix

dublu d = 0,0947628;

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

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

/ 1 i \ t endl endl;

lung originalFormat = cout.flags (ios :: oct ios :: științific); cout Valoarea semnelor este: i cout. steaguri 0 endl

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

specificată de funcția de steaguri: endl end endl; cout.flags (originalFormat);

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

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

Valoarea semnelor este de 1

Tipărirea datelor de tip int și dublu în formatul original: 1000 0.094763

Valoarea semnelor este: 4040 Tipărește date int și duble în formatul nou specificat de funcția de steaguri: 1750 9.47628e-02







Valoarea semnelor variabile este: 1: y - Retipăriți datele în formatul original: t 1000 0.094763

Fig. 11.28. Folosind funcția de steaguri

Elementul de funcții setf stabilește steagurile de formate specificate ca argument și returnează setările vechi ale acestor steaguri ca o valoare lungă, care poate fi stocată după cum se arată mai jos:

cu argumentul, și returnează setările de pavilion anterioare. Orice steaguri de formate care nu sunt definite în argumentul funcției de steaguri rămân în starea inițială. Rețineți că setările inițiale ale steagurilor fiecărui sistem pot fi diferite. Programul prezentat în Fig. 11.28, demonstrează utilizarea funcției de pavilioane pentru a seta o nouă stare a formatului și a salva starea sa anterioară și apoi a restabili setările de format original.

figll 28.cpp Щ II Demonstrarea steagurilor elementului funcțional. iinclude

11.8. Eroare de debit

Starea fluxului poate fi verificată cu biți de clasă ios-base pentru clasele istream, ostream și iostream pe care le-am folosit pentru I / O.

Bitul eofbit pentru fluxul de intrare este setat automat când apare un semn al sfârșitului fișierului. Programul poate folosi elementul funcției eof pentru a determina dacă sfârșitul fișierului a fost întâlnit în flux. apel

returnează adevărat dacă cineva întâlnește sfârșitul fișierului și altfel fals.

Bitul de eroare este setat pentru flux dacă apare o eroare de format în flux, dar caracterele nu sunt pierdute. Funcția de defecțiune determină dacă a apărut o eroare în funcționarea firului; de obicei după o astfel de operațiune nereușită, datele pot fi restabilite.

Bitul rău este setat pentru flux atunci când apare o eroare, ceea ce duce la pierderea datelor. Funcția rău determină dacă operația firului are o astfel de eroare. Cu astfel de erori grave, datele nu sunt, de obicei, refăcute.

Un bit bun este setat pentru flux dacă nu este setat niciunul dintre biții eofbit, failbit și badbit.

Funcția bună returnează adevărat dacă toate funcțiile rău, eșec și eof trebuie să returneze false pentru acest flux. Operațiile I / O pot fi efectuate în mod normal doar cu fluxuri bune (bune).

Funcția rdstate returnează starea de eroare a fluxului. Apelarea cout.rdstate, de exemplu, va returna starea fluxului, care ar putea fi apoi utilizată într-o instrucțiune switch care va testa ios :: eofbit, ios :: bad-bit, ios :: failbit și ios :: goodbit. Dar mijloacele mai convenabile de a verifica starea este de a folosi funcționalitatea elementelor eof, rău, eșec și bine. Utilizarea acestor funcții nu necesită ca programatorul să funcționeze cu biți de stare separați.

Funcția clară este folosită în mod normal pentru a restabili fluxul la normal (atunci când funcția bună revine la adevărat), în care puteți continua operațiile de intrare / ieșire ale fluxului. pe

Funcția setf are două argumente lungi:

Această declarație șterge mai întâi bitul ios :: adjustfield și apoi stabilește steagul ios :: stânga. Această variantă a flagului setf afectează câmpurile de biți asociate cu ios :: basefield (conține ios :: dec, ios :: oct și ios :: hex), cu ios :: floatfield (conține ios :: scientific and ios :: fixed) și cu ios :: adjustfield (conține ios :: left, ios :: right și ios :: internal).

Elementul de elemente unsetf resetează drapelele specificate și returnează valorile acestor steaguri care au existat mai devreme.







Articole similare

Trimiteți-le prietenilor: