ANSI C 2

ANSI C 2



DODATEK B BIBLIOTEKA STANDARDOWA

Tablica B-1. Przekształcenia funkcji printf

Znak

Typ argumentu

Przekształcany do postaci

d, i

int

liczby dziesiętnej ze znakiem.

0

int

liczby ósemkowej bez znaku (bez wiodącego zera).

x, X

int

liczby szesnastkowej bez znaku (bez wiodącego 0x lub 0X) z użyciem liter abedef dla 0x i ABCDEF dla 0X.

u

int

liczby dziesiętnej bez znaku.

c

int

pojedynczego znaku po przekształceniu do typu unsigned char.

s

char *

Znaki tekstu są wypisywane aż do napotkania znaku ’\0! lub liczba wypisanych znaków osiągnie wskazaną precyzję.

f

double

liczby dziesiętnej [-]nunm.ddd, gdzie liczbę cyfr d określa precyzja. Domyślną precyzją jest 6; przy precyzji 0 opuszcza się kropkę dziesiętną.

e. E

double

liczby dziesiętnej [~\m.dddddde±xx lub [-]m.ddddddE±xx, gdzie liczbę cyfr d określa precyzja.

Domyślną precyzją jest 6; przy precyzji 0 opuszcza się kropkę dziesiętną.

g.G

double

Jeśli wykładnik potęgi jest mniejszy niż -4 lub większy lub równy precyzji, to stosuje się specyfikację %e lub %E; w przeciwnym przypadku %f. Nie wypisuje się nie znaczących zer i zbędnej kropki dziesiętnej.

P

void *

wskaźnika (reprezentacja zależy od implementacji).

n

int *

Liczbę dotychczas wypisanych znaków w tym wywołaniu funkcji printf zapisuje się do odpowiedniego argumentu. Nie ma żadnego przekształcenia argumentu.

%

Nie ma żadnego przekształcania argumentu - zostanie wypisany znak %.

vprintf(const char *format, va_list arg) vfprintf(FILE *stream, const char *format, va Jist arg) vsprintf(char *s, const char *format, va_list arg)

Funkcje vprintf, vfprintf i vsprintf działają tak samo, jak odpowiednie funkcje printf z tym, że zamiast listy argumentów o zmiennej długości podaje się argument arg, który został zainicjowany wywołaniem makra va_start i, być może, wywołaniami va_arg (patrz: rozważania nad <stdarg.h> w p. B7).

B1.3 Formatowane wejście

Funkcje z rodziny scanf realizują formatowane przekształcanie danych wejściowych.

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

Funkcja fscanf czyta strumień stream i pod kontrolą argumentu format przypisuje przekształcone wartości kolejnym argumentom. Każdy z tych argumentów musi być

I powered by

B1 WEJŚCIE I WYJŚCIE: NAGŁÓWEK <STDIO.H> ___I_.--■

| Ml SlOl

wskaźnikiem. Funkcja kończy działanie, gdy zinterpretuje cały formSTTTCETR^c^^™ zwraca EOF, jeśli przed jakimkolwiek przekształceniem napotka koniec pliku lub nastąpi jakiś błąd; w przeciwnym przypadku zwraca liczbę przekształconych i przypisanych danych wejściowych.

Format zwykle zawiera specyfikacje przekształceń, które sterują interpretacją wejściowego ciągu znaków. W formacie mogą wystąpić:

•    Odstępy i tabulacje, które są ignorowane;

•    Zwykłe znaki (nie %) spodziewane jako następne „czarne” znaki w strumieniu wejściowym;

•    Specyfikacje przekształceń złożone ze znaku %, opcjonalnego znaku * wstrzymującego przypisanie, opcjonalnej liczby określającej maksymalny rozmiar pola, opcjonalnej litery h, I lub L określającej rozmiar odpowiedniego argumentu oraz ze znaku przekształcenia.

Specyfikacja przekształcenia steruje przekształceniem kolejnego pola wejściowego. Zwykle wynik jest przypisywany zmiennej wskazanej odpowiednim argumentem.

Jeśli jednak przypisanie ma być wstrzymane, jak np. w %*s, to dane pole wejściowe będzie po prostu pominięte - nie wykona się żadne przypisanie. Pole wejściowe jest zdefiniowane jako ciąg czarnych znaków; rozciąga się ono albo do najbliższej „białej plamy” (ciąg białych znaków), albo - jeśli podano rozmiar pola - na odległość wskazaną tym rozmiarem. Wynika z tego, że funkcja scanf w poszukiwaniu swoich pól będzie przekraczać granice wierszy, ponieważ znak nowego wiersza jest białym znakiem. (Do białych znaków należą: znak odstępu, tabulacji, nowego wiersza, powrotu karetki, tabulacji pionowej i znak nowej strony.)

Znak przekształcenia określa sposób interpretacji najbliższego pola wejściowego. Odpowiedni argument musi być wskaźnikiem. Dozwolone znaki przekształcenia przedstawiono w tabl. B-2.

Znaki przekształcenia d, i, n, o, u i x można poprzedzić literą h, jeśli argument jest wskaźnikiem do obiektów typu short, a nie int, lub literą I, jeśli argument jest wskaźnikiem do obiektów typu long. Znaki przekształcenia e, f i g mogą być poprzedzone literą I, jeśli na liście argumentów znajduje się wskaźnik do obiektów typu double, a nie float, lub literą L dla typu long double.

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

Wywołanie scanf(...) jest równoważne z wywołaniem fscanf(stdin,...). int sscanf(char *s, const char *format, ...)

Funkcja sscanf odpowiada funkcji scanf z tym. że wejściowe znaki są pobierane z tablicy znakowej s.

327


Wyszukiwarka

Podobne podstrony:
ANSI C 3 DODATEK B BIBLIOTEKA STANDARDOWA Tablica B-2. Przekształcenia funkcji scanf Znak Dana
ANSI C 7 DODATEK B BIBLIOTEKA STANDARDOWA double strtod(const char *s, char **endp) Funkcja strtod
ANSI C 1 DODATEK B BIBLIOTEKA STANDARDOWA cznej tablicy. Wywołanie tmpnam(s) wstawia tę nazwę do a
ANSI C 8 DODATEK B BIBLIOTEKA STANDARDOWA ________ char *getenv(const char *name) Funkcja getenv z
ANSI C 0 DODATEK B BIBLIOTEKA STANDARDOWA____ clock_t clock(void) Funkcja clock zwraca czas proces
ANSI C 0 DODATEK B BIBLIOTEKA STANDARDOWA DODATEK B BIBLIOTEKA STANDARDOWAWejście i wyjście: nagłó
ANSI C 4 DODATEK B BIBLIOTEKA STANDARDOWA czytaniu ze strumienia. Dla każdego strumienia można wyc
ANSI C 5 DODATEK B BIBLIOTEKA STANDARDOWA ____- różną od zera (prawda), jeśli argument c spełnia p
ANSI C 6 DODATEK B BIBLIOTEKA STANDARDOWA s i t są typu void *, argumenty cs i ct są typu const vo
ANSI C 9 DODATEK B BIBLIOTEKA STANDARDOWA DODATEK B BIBLIOTEKA STANDARDOWASkoki odległe: nagłówek
108 DODATEK C. WY BR AS E FUNKCJE BIBLIOTEKI STANDARDOWEJWartość zwracana Jeżeli funkcjo zakończą si
ANSI C 2 DODATEK A PRZEWODNIK JĘZYKA C W pierwszym wydaniu książki typ wyrażenia przyrostkowego by
ANSI C 2 DODATEK A PRZEWODNIK JĘZYKA CA8.6 Znaczenie deklaratorów Lista deklaratorów pojawia się p
ANSI C 3 DODATEK A PRZEWODNIK JĘZYKA C____- tablicą o pięciu elementach, z których każdy jest tabl
ANSI C 4 DODATEK A PRZEWODNIK JĘZYKA C ____—-- stropy jest funkcją zwracającą wartość całkowitą i
ANSI C 1 DODATEK B BIBLIOTEKA
ANSI C 2 DODATEK C PODSUMOWANIE ZMIAN ków # ~ [] { }
Dodatek CWybrane funkcje biblioteki standardowejassertDeklaracja •define assert(expr)Plik
190 DODATEK C. WY BR AS E FUNKCJE BIBLIOTEKI STANDARDOWEJPrzykład •include <assert.h> int

więcej podobnych podstron