CATEGORII DOCUMENTE |
Iesiri cu format
Functiile de tip printf() asigura conversiile de iesire cu format.
a) Functia fprintf()
Forma acestei functii este:
int fprintf(FILE *fp, 'format', lista_argumente)
Functia fprintf() realizeaza conversia si scrierea la iesire in fisierul indirectat cu 'fp' sub controlul formatului, 'format'. Valoarea intoarsa de functie este numarul de caractere scrise, sau orice valoare negativa, daca apare o eroare.
Sirul 'format' contine doua tipuri de obiecte: caractere obisnuite care sunt copiate in fisierul de iesire si descriptori de conversie, fiecare determinand conversia si tiparirea argumentelor din lista de argumente. Fiecare descriptor incepe cu caracterul % si se incheie cu un caracter de conversie. Intre % si caracterul de conversie pot exista:
1) Indicatori (in orice ordine):
'-' - determina alinierea la stanga a argumentului convertit in campul de reprezentare;
'+' - precizeaza ca numarul va fi reprezentat cu semn;
' ' - daca primul caracter nu este un semn se va scrie un blanc la inceput;
'0' - se utilizeaza in conversiile numerice si indica umplerea cu zerouri la inceputul campului;
'#' - indica o forma de iesire alternativa : pentru '0', prima cifra va fi zero; pentru 'x' sau 'X', la inceputul fiecarui numar nenul se va scrie '0x' sau '0X'; pentru 'e', 'E', 'g', 'G', 'f' iesirea va avea intotdeauna un punct zecimal; pentru 'g' si 'G' nu se vor elimina zerourile de la sfarsit.
2) Un numar care indica lungimea minima a campului de reprezentare.
Argumentul convertit va fi tiparit intr-un camp cu o lungime cel putin egala cu cea specificata, daca va fi nevoie si mai mare. Daca argumentul specificat are mai putine caractere, atunci campul va fi umplut la stanga sau la dreapta, functie de aliniere. Caracterul de umplere este de obicei spatiul, dar este 0 daca s-a ales aceasta optiune (exemplu: %05d).
3) Un punct ce separa lungimea campului de precizie.
4) Un numar, precizia, care indica numarul maxim de caracetre care se vor tipari dupa virgula pentru 'e', 'E', sau 'f', sau numarul de cifre semnificative pentru conversiile 'g' sau 'G', sau numarul maxim de caractere ce se vor tipari dintr-un sir. Lungimea, sau precizia, sau amandoua se pot specifica si prin '*'. De exemplu:
%10.4f - va afisa un numar de cel putin 10 caractere cu 4 caractere dupa virgula;
%5.7s - va afisa un sir de cel putin 5 caractere dar nu mai lung de 7 caractere;
%-10.2f - va alinia la stanga un numar real cu 2 zecimale intr-un camp de reprezentare de cel putin 10 caractere.
Descriptorii de conversie utilizati de C sunt:
%c - un singur caracter.
%d, %i - notatie zecimala cu semn.
%x, %X - notatie hexazecimala fara semn (fara 0x sau 0X).
%u - notatie zecimala fara semn.
%s - caracterele din sir sunt tiparite pana se intalneste '0' sau cat timp numarul de caractere tiparit precizia.
%f - notatie zecimala de forma [-]mmm.ddd, unde numarul d-urilor este indicat de precizie; precizia implicita este 6, iar o precizie egala cu zero elimina punctul zecimal.
%e, %E - notatie zecimala de forma:
[-]m.dddddde+/-xx sau
[-]m.ddddddE+/-XX
unde numarul de d-uri este indicat de precizie (precizia implicita este 6, iar o precizie egala cu 0 va elimina punctul zecimal).
%g, %G - se utilizeaza %e sau %E daca exponentul este mai mic decat -4, sau precizie, in caz contrar se utilizeaza %f.
%p - afiseaza un pointer.
%o - notatie octalaa fara semn (fara 0 la inceput).
%% - nu se face conversie, se tipareste '%'.
%n - nu se realizeaza conversie de argument; numarul de caractere scrise pana in acel moment este scris in argument.
Exista doi modificatori de format care permit functiei fprintf() sa afiseze intregii long si short. Acesti modificatori se pot aplica caracterelor de conversie d, i, o, u si x, precedandu-i pe acestia (exemplu: %ld, %li, %lu). Modificatorul l poate prefixa si caracterele de conversie e, f si g si indica faptul ca numerele tiparite sunt de tip double. Modificatorul h comanda functiei fprintf() sa afiseze short int. Atunci %hu va preciza ca data este de tip short unsigned int.]
b) Functia printf()
Forma functiei :
int printf('format', lista-argumente)
Functia printf() este echivalenta cu :
fprintf(stdout, 'format', lista_argumente)
Exemplu:
printf() iesire
('%-5.2f', 123.456) 123.45
('%5.2f', 3.4565) 3.45
('%10s', 'hello') hello
('%-10s', 'hello') hello
(%5.7s', '123456789') 1234567
Exemplu de utilizare a functiei fprintf.
/* Acest program foloseste fprintf pentru scrierea datelor cu diferite formate intr-un fisier si apoi tipareste fisierul folosind functia sistem system ce apeleaza comanda TYPE a sistemului de operare */
#include <stdio.h>
#include <process.h>
FILE *stream;
void main( void )
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1532
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved