biblioteki_c.pdf
(
72 KB
)
Pobierz
w13.dvi
Biblioteki ANSI C
string.h Deklaruje funkcje do manipulowa-
nia ªa«cuchami takie, jak
strcmp
i
strcpy
.
Standard ANSI deniuje wszystkie aspekty C: jezyk, prepro-
cesor oraz biblioteke. Prototypy funkcji bibliotecznych, jak rów-
nie» niezbedne struktury danych oraz staªych preprocesora sa
zdeniowane w standardowych zbiorach nagªówkowych. Poni»-
sza tabela zawiera zestawienie standardowych zbiorów nagªów-
kowych, wªacznie z podsumowaniem ich zawarto±ci.
time.h
Deklaruje typy danych i deniuje
funkcje do manipulowania czasem.
Deniuje typy
clock t
i
time t
oraz
strukturedanych
tm
Uwaga: Identykatory zewnetrzne rozpoczynajace sieodznaku
podkre±lenia sa zarezerwowane na u»ytek biblioteki: to samo do-
tyczy wszelkich innych identykatorów rozpoczynajacych sieod
znaku podkre±lenia i wielkiej litery lub dwóch znaków podkre-
±lenia.
Wej±cie i wyj±cie: nagªówek
<stdio.h>
STANDARDOWE ZBIORY NAGÓWKOWE W ANSI C
Zbiór nagªówkowy Przeznaczenie
assert.h
Operacje na plikach
Deniuje makro
assert
.U»ywane
do diagnostyki programu.
ctype.h
Deklaruje funkcje do klasykacji i
konwersji znaków.
FILE *fopen(const char *filename, const char *mode)
FILENAME_MAX maksimum znakow w nazwie pliku
errno.h
Deniuje makrosy dla warunków
bªedu,
EDOM
i
ERANGE
,oraz
zmienna caªkowita
errno
poprzez
która funkcje biblioteczne zwra-
cajakodbªedu.
FOPEN_MAX plikow mozna jednoczesnie otworzyc
FILE *freopen(const char *filename,
const char *mode, FILE *stream)
Zwykle uzywa sie do zmiany plikow zwiazanych
ze strumieniami stdin, stdout, stderr
float.h
Deniuje zakres warto±ci, które
mogaby¢zapamietywane w typach
zmiennoprzecinkowych.
#include <stdio.h>
limits.h
Deniuje warto±ci ograniczajace
dla wszystkich danych typu caªko-
witego.
int main(void)
{
/* redirect standard output to a file */
if (freopen("OUTPUT.FIL", "w", stdout)
== NULL)
fprintf(stderr, "error redirecting stdout\n");
locale.h
Deklaruje strukture
lconv
i funkcje
niezbedne do przystosowania pro-
gramu w C do poszczególnych ±ro-
dowisk lokalnych.
/* this output will go to a file */
printf("This will go into a file.");
math.h
Deklaruje funkcje matematyczne
oraz makro
HUGE VA L
/* close the standard output stream */
fclose(stdout);
setjmp.h
Deniuje funkcje
setjmp
oraz
lon-
gjmp
,któ emoga przekazywa¢
kontrole z jednej funkcji do dru-
giej bez opierania sie na wywoªa-
niach i powrotach z funkcji. De-
niuje równie» typ danych
jmp buf
u»ywany przez
setjmp
i
longjmp
.
return 0;
}
int fflush(FILE *stream)
int fclose(FILE *stream)
signal.h
Deniuje symbole i procedury
niezbedne dla obsªugi zdarze«
wyjatkowych.
int remove(const char *filename)
int rename(const char *oldname, consat char *newname)
stdarg.h
Deniuje makrosy, które umo»li-
wiajadostep do nienazwanych ar-
gumentów w funkcji, która akcep-
tuje zmienna liczbeargumentów.
FILE *tmpfile(void)
char *tmpnam(char s[L_tmpnam])
stddef.h
Deniuje standardowe typy danych
ptrdi t
,
size t
,
wchar t
,symbol
NULL
oraz makro
osetof
TMP_MAX co najwyzej tyle roznych nazw mozna
wygenerowac podczas dzialania
jednego programu
stdio.h
Deklaruje funkcje i typy da-
nych niezbedne do obsªugi ope-
racji we/wy. Deniuje ma-
krosy takie jak
BUFSIZ
,
EOF
,
NULL
,
SEEK CUR
,
SEEK END
i
SEEK SET
int setvbuf(FILE *stream, char *buf,
int mode, size_t size)
mode - mozliwe 3 wartosci:
_IOFBUF pelne buforowanie
_IOLBUF buforowanie wierszy pliku tekstowego
_IONBUF brak buforowania
Jezeli buf rowny NULL, to przydzial domyslny.
stdlib.h
Deklaruje wiele funkcji u»yteczno-
±ci takich, jak procedury konwer-
sji ªa«cuchów, generator liczb lo-
sowych, procedury alokacji pamieci
i procedury kontroli procesów (ta-
kie, jak
abort
,
exit
i
system
).
#include <stdio.h>
int main(void)
{
FILE *input, *output;
char bufr[512];
int fscanf(FILE *stream, const char *format, ... )
input = fopen("file.in", "r+b");
output = fopen("file.out", "w");
int scanf(const char *format, ... )
int sscanf(char *s, const char *format, ... )
/* set up input stream for minimal disk access,
using our own character buffer */
if (setvbuf(input, bufr, _IOFBF, 512) != 0)
printf("failed to set up buffer for input "
"file\n");
Funkcje realizujace wej±cie i wyj±cie znakowe
else
printf("buffer set up for input file\n");
/* set up output stream for line buffering
using space that will be obtained through
an indirect call to malloc */
if (setvbuf(output, NULL, _IOLBF, 132) != 0)
printf("failed to set up buffer for output"
" file\n");
int fgtec(FILE *stream)
char *fgets(char *s, int n, FILE *stream)
int fputc(int c, FILE *stream)
int fputs(const char *s, FILE *stream)
else
printf("buffer set up for output file\n");
int getc(FILE *stream)
/* perform file I/O here */
/* close files */
fclose(input);
fclose(output);
return 0;
int getchar(void)
char *gets(char *s)
int putc(int c, FILE *stream)
}
int putchar(int c)
void setbuf(FILE *stream, char *buf)
Jesli buf == NULL, to buforowanie zostanie
wylaczone, w przeciwnym przypadku rownowazne
int puts(const char *s)
int ungetc(int c, FILE * stream)
(void) setvbuf(stream,_IOFBUF, BUFSIZ)
#include <stdio.h>
/* BUFSIZ is defined in stdio.h */
char outbuf[BUFSIZ];
Funkcje realizujace bezpo±rednie wej±cie i wyj±cie
int main(void)
{
size_t fread(void *ptr, size_t size, size_t nobj,
FILE *stream)
/* attach a buffer to the standard output stream */
setbuf(stdout, outbuf);
#include <string.h>
#include <stdio.h>
/* put some characters into the buffer */
puts("This is a test of buffered output.\n\n");
puts("This output will go into outbuf\n");
puts("and won't appear until the buffer\n");
puts("fills up or we flush the stream.\n");
int main(void)
{
FILE *stream;
char msg[] = "this is a test";
char buf[20];
/* flush the output buffer */
fflush(stdout);
if ((stream = fopen("DUMMY.FIL", "w+"))
== NULL)
{
return 0;
fprintf(stderr, "Cannot open output file.\n");
return 1;
}
}
Formatowane wyj±cie
/* write some data to the file */
fwrite(msg, strlen(msg)+1, 1, stream);
int fprintf(FILE *stream, const char *format, ... )
/* seek to the beginning of the file */
fseek(stream, SEEK_SET, 0);
int printf(const char *format, ... )
/* read the data and display it */
fread(buf, strlen(msg)+1, 1, stream);
printf("%s\n", buf);
int sprintf(char *s, const char *format, ... )
int vprintf(const char *format, va_list arg)
fclose(stream);
return 0;
int vfprintf(FILE *stream, const char *format,
va_list arg)
}
int vsprintf(char *s, const char *format, va_list arg)
size_t fwrite(const void *ptr, size_t size,
size_t nobj, FILE *stream)
Formatowane wej±cie
#include <stdio.h>
struct mystruct
{
int i;
char ch;
Obsªuga bªedów
};
int main(void)
{
void clearerr(FILE *stream)
Kasuje znaczniki konca pliku i bledu.
FILE *stream;
struct mystruct s;
int feof(FILE *stream)
Zwraca wartosc rozna od 0 na koncu pliku.
if ((stream = fopen("TEST.$$$", "wb")) == NULL)
/* open file TEST.$$$ */
{
int ferror(FILE *stream)
Zwraca wartosc rozna od zera, gdy blad.
fprintf(stderr, "Cannot open output file.\n");
return 1;
void perror(const char *s)
Wypisuje komunikat zwiazany z numerem errno.
}
s.i = 0;
s.ch = 'A';
fwrite(&s, sizeof(s), 1, stream);
/* write struct s to file */
fclose(stream); /* close file */
return 0;
Klasykowanie znaków: nagªówek
<ctype.h>
isalnum(c) prawda jest albo isalpha(c) albo isdigit(c)
}
isalpha(c) prawda jest isupper(c) albo islower(c)
Funkcje wyznaczajace pozycje w pliku
iscntrl(c)
znak kontrolny
isdigit(c)
cyfra dziesietna
int fseek(FILE *stream, long offset, int origin)
Dla plikow binarnych:
nowa pozycja w miejscu oddalonym o offset
znakow od origin.
Wartosci origin
SEEK_SET poczatek pliku
SEEK_CUR biezaca pozycja
SEEK_END koniec pliku
isgraph(c) znak drukowalny za wyjatkiem odstepu
islower(c)
maªa litera
isprint(c)
znak drukowalny ªacznie z odstepem
ispunct(c) znak drukowalny za wyjatkiem
odstepu, liter i cyfr
isspace(c)
odstep, nowa strona, nowy wiersz,
powót karetki, tabulator, pionowy
tabulator
Dla plikow tekstowych:
offset musi byc rowny zeru
lub wartosci zwroconej przez ftell
(wowczas origin musi byc rowne SEEK_SET)
Funkcja fseek zwraca wartosc niezerowa w
przypadku bledu.
isupper(c) du»a litera
isxdigit(c) cyfra szesnastkowa
Dwie dodatkowe funkcje sªu»a do zmiany wielko±ci liter:
long ftell(FILE *stream)
zwraca wartosc biezacej pozycji dla stream
lub -1L w przypadku bledu.
int tolower(int c) zamienia c na mala litere
int toupper(int c) zamienia c na duza litere
void rewind(FILE *stream)
Wywolanie rewind jest rownowazne:
fseek(fp,0L,SEEK_SET);
clearerr(fp);
Operacje na tekstach: nagªówek
<string.h>
char *strcpy(char *s, const char *ct)
Kopiuje ct do s lacznie z '\0'; zwraca s
#include <stdio.h>
int main(void)
{
char *strncpy(char *s, const char *ct, size_t n)
Kopiuje co najwyzej n znakow;
FILE *fp;
char *newname="test.txt", first;
char *strcat(char *s, const char *ct)
Dopisuje znaki z ct na koniec s; zwraca s
fp = fopen(newname,"w+");
fprintf(fp,"abcdefghijklmnopqrstuvwxyz");
rewind(fp);
fscanf(fp,"%c",&first);
printf("The first character is: %c\n",first);
fclose(fp);
remove(newname);
return 0;
int strcmp(const char *cs, const char *ct)
Porownuje znaki.
int strncmp(const char *cs, const char *ct, size_t n)
Porownuje co najwyzej n znakow.
}
char *strchr(const char *cs, char c)
zwraca wskaznik do pierwszego wystapienia c w s
lub NULL, jesli znak nie wystepuje
int fgetpos(FILE *stream, fpos_t *ptr)
int fsetpos(FILE *stream, const fpos_t *ptr)
ustawia biezaca pozycje w stream wedlug
wartosci zapamietanej przez fgetpos w
miejscu wskazywanym przez ptr
W przypadku bledu zwraca wartosc rozna od
zera
char *strrchr(const char *cs, char c)
zwraca wskaznik do ostatniego wystapienia c w s
size_t strspn(const char *cs, const char *ct)
zwraca dlugosc przedrostka w tekscie cs
skladajacego sie ze znakow wystepujacych w ct
size_t strcspn(const char *cs, const char *ct)
zwraca dlugosc przedrostka w tekscie cs sklada-
jacego sie ze znakow nie wystepujacych w ct
sin(x)
sinus x
cos(x)
cosinus x
tan(x)
tangens x
asin(x)
sin
−
1
(
x
) w przedziale [
−
2
;
2],
x
char *strpbrk(const char *cs, const char *ct)
zwraca wskaznik do pierwszego wystapienia w cs
jakiegos znaku z ct lub NULL, jesli takich nie ma
2
[
−
1
;
1]
acos(x)
cos
−
1
(
x
) w przedziale [0
;
],
x 2
[
1
;
1]
atan(x)
tan
−
1
(
x
) w przedziale [
−
2
;
2]
char *strstr(const char *cs, const char *ct)
zwraca wskaznik do pierwszego wystapienia tekstu ct
w cs lub NULL, jesli ct nie wystepuje w cs
atan2(y,x)
tan
−
1
(
yx
) w przedziale [
−;
]
sinh(x)
sinus hiperboliczny x
cosh(x)
cosinus hiperboliczny x
tanh(x)
tangens hiperboliczny x
exp(x)
funkcja wykªadnicza
e
x
size_t strlen(const char *cs)
log(x)
logarytm naturalny: ln(x),
x>
0
log10(x)
logarytm o podstawie 10:
log
10
(
x
),
x>
0
char *strerror(size_t n)
zwraca wskaznik do tekstu komunikatu
odpowiadajacego bledowi o numerze n
pow(x,y)
x
y
(bªad zakresu, gdy
x
=0i
y
0
lub, gdy
x<
0 i y nie jest caªkowite
0
ceil(x) najmniejsza liczba caªkowita nie
mniejsza ni» x
floor(x) najwieksza liczba caªkowita nie
wieksza ni» x
fabs(x) warto±¢ bezwzgledna
jxj
ldexp(x,n)
x
2
n
frexp(x, int *exp) rozdziela x na znormalizowana
cze±¢ uªamkowa z przedziaªu
[1
=
2
;
1] i wykªadnik potegi 2;
funkcja zwraca cze±¢ uªamkowa, a
wykªadnik potegi wstawia siedo
*exp
modf(x, double *ip) rozdziela x na cze±¢ caªkowitai
uªamkowa, obie z tym samym zna-
kiem, co x; cze±¢ caªkowitawsta-
wia siedo*ipizwracacze±¢ uªam-
kowa
p
x
,
x
char *strtok(char *s, const char *ct)
wyszukuje w tekscie s ciagi znakow przedzielone
znakami z ct
Funkcje
mem...
sªu»a do operowania na obiektach traktowa-
nych jak tablice znakowe; z zaªo»enia maja one dziaªa¢ bardzo
sprawnie.
mod(x,y)
zmiennopozycyjna reszta z dziele-
nia
x=y
, z tym samym znakiem co
x
void *memcpy(void *s, const void *ct, size_t n)
Kopiuje n znakow z obiektu ct do s i zwraca s
void *memmove(void *s, const void *ct, size_t n)
Robi to samo, co memcpy, ale dziala rowniez
dla obiektow zachodzacych na siebie
int memcmp(const void *cs, const void *ct, size_t n)
porownuje poczatkowe n znakow w cp i cs;
zwraca taka sama wartosc jak strcmnp.
void *memchr(const void *cs, char c, size_t n)
zwraca wskaznik do pierwszego wystapienia c w s
lub NULL, jesli nie wystepuje.
void *memset(void *s, char c, size_t n)
wstawia c do poczatkowych n znakow s; zwraca s
Funkcje matematyczne: nagªówek
<math.h>
W poni»szym zestawieniu:
x,y - typu
double
n-
typu int
Wszystkie funkcje zwracajawarto±¢typu
double
.Warto±ci
katów dla funkcji trygonometrycznych wyra»a sie w radianach.
−
sqrt(x)
Plik z chomika:
klamer87
Inne pliki z tego folderu:
Unigrafix nx.pdf
(106022 KB)
Catia - Podstawy modelowania i zapisu konstrukcji.pdf
(163543 KB)
Fanuc seria 0i-MB instrukcja obsługi.pdf
(6348 KB)
sinumerik 840d.pdf
(4940 KB)
Basic Technical English.pdf
(3522 KB)
Inne foldery tego chomika:
administracja wsh odpowiedzi na obrone
Angielski - Total English - Pre intermediate
autocad
Autodesk Inventor 2012 PL 32bits + 64bits + cracks
backup
Zgłoś jeśli
naruszono regulamin