node87






Sformatowane wyjście






















Next: Sformatowane wejście
Up: Funkcje We/Wy w libc
Previous: Funkcje We/Wy w libc
  Contents






Sformatowane wyjście



Funkcje printf(...) z libc dostarczają sformatowane
wyjście i transformacje argumentów.



int fprintf(FILE *stream, const char *format, ...),

przeformatuje wyjście ( argumenty wypełniające ...) i
zapisze w stream. Format zdefiniowany w format
zostanie również zapisany. Funkcja zwróci ilość zapisanych znaków
lub wartość ujemną jeżeli nastąpił błąd.

format zawiera dwa rodzaje obiektów

1.
normalne znaki dla wyjścia i
2.
informacje jak przekształcić lub sformatować argumenty.



Informacje formatujące muszą zaczynać się od % poprzedzającego
wartość opcji formatującej i znak formatowania ( aby wypisać % musisz
użyć następującą kombinację %%). Wartości opcji formatujących:



Flagi

-

Sformatowany argument zostanie wypisany z lewym marginesem ( domyślnym jest
prawy ).

+

Każda liczba zostanie wypisana ze znakiem, np: +12 lub -2.32.



Puste

Kiedy znak nie jest pierwszy zostanie wstawiona pustka.

0

Dla transformacji numerycznych pole zostanie wypełnione 0 po lewej
stronie.

#

Alternatywne wyjście zależne od transformacji argumentu
Alternate output depending on the transformation for the argument

Dla o pierszą cyfrą jest 0.

Dla x lub X 0x lub 0X zostanie wstawione
poprzedzając argument.

Dla e, E, f lub F wyjście jest liczbą dziesiętną.

Dla g lub G zera na końcu argumentu są drukowane.



Minimalny rozmiar pola.

Sformatowany argument jest drukowany w pole, które jest co najmniej tak
duże jak argument. Podając liczbę możesz zwiększyć to pole. Jeżeli
argument jest mniejszy puste pole zostanie wypełnione zerami lub pozostanie
puste.

Kropka aby odseparować szerokość i precyzję pola.

Precyzja.




Możliwe wartości transformacji są w tabeli 8.1 na stronie .



int printf(const char *format, ...)

To samo co fprintf(stdout, ...).



int sprintf(char *s, const char *format, ...)

To samo co printf(...), przy czym wyjście zostanie zapisane
pod adresem wskazywanym przez s ( będzie zakończone \0 ).


( Uwaga: Musisz przygotować odpowiednią ilość pamięci dla s. )



vprintf(const char *format, va_list arg)

vfprintf(FILE *stream, const char *format, va_list arg)

vsprintf(char *s, const char *format, va_list arg)

To samo co funkcje powyżej przy czym lista argumentów ustawiona jest na
arg.










Table 8.1:
Libc - transformacje dla printf
Znak
Formatowanie

d,i
int liczba ze znakiem

o
int unsigned, ósemkowo, bez poprzedzającego 0

x,X
int unsigned, szesnastkowo, bez poprzedzającego 0x

u
int unsigned, dziesiętnie

c
int (unsigned) pojedynczy znak

s
char * aż do \0

f
double jako [-]mmm.ddd

e,E
double jako [-]m.ddddddexx

g,G
double użyj %e lub %f jeżeli musisz

p
void *

n
int *

%
%


















Next: Sformatowane wejście
Up: Funkcje We/Wy w libc
Previous: Funkcje We/Wy w libc
  Contents



2000-03-01








Wyszukiwarka

Podobne podstrony:
node87 K7XCVNZBQYIQVIY26ZDNDTOCMD36UPVFQY6BPII
node87
node87 TCE2YVGBVWFZYQW5AARVAH6P3TGRPKX3A5GWIAA
node87 1
node87
node87 ZSHPB7IDVIHJTYVSX5EVIUF7UMABU3D6EJ4OJGA

więcej podobnych podstron