B1.4. Π€ΡΠ½ΠΊΡΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
int fgetc(FILE *stream);
fgetc Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠ° stream Π² Π²ΠΈΠ΄Π΅ unsigned char (ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π½ΡΡ Π² int) ΠΈΠ»ΠΈ EOF, Π΅ΡΠ»ΠΈ ΠΈΡΡΠ΅ΡΠΏΠ°Π½ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π° ΠΎΡΠΈΠ±ΠΊΠ°.
char *fgets(char *s, int n, FILE *stream);
fgets ΡΠΈΡΠ°Π΅Ρ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ n-1 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ² s, ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Ρ ΡΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π²ΡΡΡΠ΅ΡΠΈΠ»ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²; ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π² ΠΌΠ°ΡΡΠΈΠ² '\0'. Π€ΡΠ½ΠΊΡΠΈΡ fgets Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ s ΠΈΠ»ΠΈ, Π΅ΡΠ»ΠΈ ΠΈΡΡΠ΅ΡΠΏΠ°Π½ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π° ΠΎΡΠΈΠ±ΠΊΠ°, NULL.
int fputc(int Ρ, FILE *stream);
fputc ΠΏΠΈΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» c (ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² unsigned char) Π² stream. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΈΠ»ΠΈ EOF Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ.
int fputs(const char *s, FILE *stream);
fputs ΠΏΠΈΡΠ΅Ρ ΡΡΡΠΎΠΊΡ s (ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΈΠΌΠ΅ΡΡ '\n' ) Π² stream; Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π΅ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΠΈΠ»ΠΈ EOF Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ.
int getc(FILE *stream);
getc Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ fgetc, Π½ΠΎ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° - ΠΌΠ°ΠΊΡΠΎΡ, stream ΠΌΠΎΠΆΠ΅Ρ Π±ΡΠ°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π°.
int getchar(void);
getchar() Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ ΠΆΠ΅, ΡΡΠΎ getc(stdin).
char *gets(char *s);
gets ΡΠΈΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ Π²Π²ΠΎΠ΄Π° Π² ΠΌΠ°ΡΡΠΈΠ² s, Π·Π°ΠΌΠ΅Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π½Π° '\0'. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ s ΠΈΠ»ΠΈ, Π΅ΡΠ»ΠΈ ΠΈΡΡΠ΅ΡΠΏΠ°Π½ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π° ΠΎΡΠΈΠ±ΠΊΠ°, NULL.
int putc(int Ρ, FILE *stream);
putc Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ fputc, Π½ΠΎ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ, Π΅ΡΠ»ΠΈ putc - ΠΌΠ°ΠΊΡΠΎΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ stream ΠΌΠΎΠΆΠ΅Ρ Π±ΡΠ°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π°.
int putchar(int c);
putchar(c) Π΄Π΅Π»Π°Π΅Ρ ΡΠΎΠΆΠ΅, ΡΡΠΎ putc(c, stdout).
int puts(const char *s);
puts ΠΏΠΈΡΠ΅Ρ ΡΡΡΠΎΠΊΡ s ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² stdout. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ EOF Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΈΠ»ΠΈ Π½Π΅ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΏΡΠΎΡΠ»Π° Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
int ungetc(int Ρ, FILE *stream);
ungetc ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» c (ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² unsigned char) ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² stream; ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠ΅Π½ΠΈΠΈ ΠΈΠ· stream ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΡΠ½ΠΎΠ²Π°. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π²Π΅ΡΠ½ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°. ΠΠ΅Π»ΡΠ·Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ EOF. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ungetc Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π½Π°Π·Π°Π΄ ΡΠΈΠΌΠ²ΠΎΠ» ΠΈΠ»ΠΈ, Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ, EOF.
B1.5. Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°
size_t fread(void *ptr, size_t size, size_t nobj, FILE *stream);
fread ΡΠΈΡΠ°Π΅Ρ ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠ° stream Π² ΠΌΠ°ΡΡΠΈΠ² ptr Π½Π΅ Π±ΠΎΠ»Π΅Π΅ nobj ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ°Π·ΠΌΠ΅ΡΠ° size. ΠΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ Π·Π°ΡΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ. ΠΠ»Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ feof ΠΈ ferror.
size_t fwrite(const void *ptr, size_t size, size_t nobj, FILE *stream);
fwrite ΠΏΠΈΡΠ΅Ρ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° ptr Π² stream nobj ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ°Π·ΠΌΠ΅ΡΠ° size; Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΌΠ΅Π½ΡΡΠ΅ nobj.
B1.6. Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°
int fseek(FILE *stream, long offset, int origin);
fseek ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π΄Π»Ρ stream; ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ Ρ ΡΡΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. Π ΡΠ»ΡΡΠ°Π΅ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ offset - ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΠ°Π»Π°, Π΅ΡΠ»ΠΈ origin ΡΠ°Π²Π΅Π½ SEEK_SET; ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, Π΅ΡΠ»ΠΈ origin ΡΠ°Π²Π΅Π½ SEEK_CUR; ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΠ°ΠΉΠ»Π°, Π΅ΡΠ»ΠΈ origin ΡΠ°Π²Π΅Π½ SEEK_END. ΠΠ»Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° offset Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½ΡΠ»Π΅ΠΌ ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ ftell. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ origin Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°Π²Π΅Π½ SEEK_SET.
long ftell(FILE *stream);
ftell Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° stream ΠΈΠ»ΠΈ -1L, Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ.
void rewind(FILE *stream);
rewind(fp) Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ fseek(fp, 0L, SEEK_SET); clearerr(fp).
int fgetpos(FILE *stream, fpos_t *ptr);
fgetpos Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° stream Π² *ptr Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΅Π΅ Π² fsetpos. Π’ΠΈΠΏ fpos_t ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΎΠ΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ fgetpos Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
int fsetpos(FILE *stream, const fpos_t *ptr);
fsetpos ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² stream, ΡΠΈΡΠ°Ρ Π΅Π΅ ΠΈΠ· *ptr, ΠΊΡΠ΄Π° ΠΎΠ½Π° Π±ΡΠ»Π° Π·Π°ΠΏΠΈΡΠ°Π½Π° ΡΠ°Π½Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ fgetpos. Π ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ fsetpos Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
B1.7. Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ° ΡΠ°ΠΉΠ»Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΡΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ΅Π»ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ errno (ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠ΅ Π² <errno.h>) ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π½ΠΎΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΈΠ· ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ.
void clearerr(FILE *stream);
clearerr ΠΎΡΠΈΡΠ°Π΅Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ ΠΊΠΎΠ½ΡΠ° ΡΠ°ΠΉΠ»Π° ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΠΎΡΠΎΠΊΠ° stream.
int feof(FILE *stream);
feof Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° stream ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΠΊΠΎΠ½ΡΠ° ΡΠ°ΠΉΠ»Π°.
int ferror(FILE *stream);
ferror Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° stream ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΠΎΡΠΈΠ±ΠΊΠΈ.
void perror(const char *s);
perror(s) ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ s ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ΅ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠ΅Π»ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² errno, Ρ. Π΅. Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ fprintf Π²ΠΈΠ΄Π°
fprintf(stderr, "%s: %s\n", s, "ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅")
Π‘ΠΌ. strerror Π² ΠΏΠ°ΡΠ°Π³ΡΠ°ΡΠ΅ B3.
B2. ΠΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠ»Π°ΡΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»Π°: βΉctype.hβΊ
ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» <ctype.h> ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΡΠ³ΡΠΌΠ΅Π½Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ int ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈΠ±ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ EOF, Π»ΠΈΠ±ΠΎ Π±ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ unsigned char, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌ ΠΊ int; Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ int. Π€ΡΠ½ΠΊΡΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ("ΠΈΡΡΠΈΠ½Π°"), ΠΊΠΎΠ³Π΄Π° Π°ΡΠ³ΡΠΌΠ΅Π½Ρ c ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΌΡ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΈ Π½ΡΠ»Ρ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
isalnum(c) isalpha(c) ΠΈΠ»ΠΈ isdigit(c) Π΅ΡΡΡ ΠΈΡΡΠΈΠ½Π° isalpha(c) isupper(c) ΠΈΠ»ΠΈ islower(c) Π΅ΡΡΡ ΠΈΡΡΠΈΠ½Π° iscntrl(c) ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» isdigit(c) Π΄Π΅ΡΡΡΠΈΡΠ½Π°Ρ ΡΠΈΡΡΠ° isgraph(c) ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΊΡΠΎΠΌΠ΅ ΠΏΡΠΎΠ±Π΅Π»Π° islower(c) Π±ΡΠΊΠ²Π° Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° isprint(c) ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ», Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π΅Π» ispunct(c) ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΊΡΠΎΠΌΠ΅ ΠΏΡΠΎΠ±Π΅Π»Π°, Π±ΡΠΊΠ²Ρ ΠΈΠ»ΠΈ ΡΠΈΡΡΡ isspace(c) ΠΏΡΠΎΠ±Π΅Π», ΡΠΌΠ΅Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ, Π½ΠΎΠ²Π°Ρ ΡΡΡΠΎΠΊΠ°, Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊΠ°ΡΠ΅ΡΠΊΠΈ, ΡΠ°Π±ΡΠ»ΡΡΠΈΡ, Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΡΠ°Π±ΡΠ»ΡΡΠΈΡ isupper(c) Π±ΡΠΊΠ²Π° Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° isxdigit(c) ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½Π°Ρ ΡΠΈΡΡΠ°Π Π½Π°Π±ΠΎΡΠ΅ ΡΠ΅ΠΌΠΈΠ±ΠΈΡΠΎΠ²ΡΡ ASCII-ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 0x20 (' ') Π΄ΠΎ 0x7E ('~'); ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ - ΠΎΡ 0 (NUL) Π΄ΠΎ 0x1F (US) ΠΈ 0x7F (DEL).
ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π΅ΡΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠΈΠ΅ Π±ΡΠΊΠ²Ρ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²:
int tolower(int c) β ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ c Π½Π° Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ;
int toupper(int c) - ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ c Π½Π° Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ.
ΠΡΠ»ΠΈ c - Π±ΡΠΊΠ²Π° Π½Π° Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅, ΡΠΎ tolower(c) Π²ΡΠ΄Π°ΡΡ ΡΡΡ Π±ΡΠΊΠ²Ρ Π½Π° Π½ΠΈΠΆΠ½Π΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅; Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½Π° Π²Π΅ΡΠ½Π΅Ρ c. ΠΡΠ»ΠΈ c - Π±ΡΠΊΠ²Π° Π½Π° Π½ΠΈΠΆΠ½Π΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅, ΡΠΎ toupper(c) Π²ΡΠ΄Π°ΡΡ ΡΡΡ Π±ΡΠΊΠ²Ρ Π½Π° Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅; Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½Π° Π²Π΅ΡΠ½Π΅Ρ c.
B3. Π€ΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠΏΠ΅ΡΠΈΡΡΡΡΠΈΠ΅ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ: <string.h>
ΠΠΌΠ΅ΡΡΡΡ Π΄Π²Π΅ Π³ΡΡΠΏΠΏΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΠΏΠ΅ΡΠΈΡΡΡΡΠΈΡ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ. ΠΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ <string.h>. ΠΠΌΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π³ΡΡΠΏΠΏΡ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ Π±ΡΠΊΠ² str, Π²ΡΠΎΡΠΎΠΉ - Ρ mem. ΠΡΠ»ΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π΄Π΅Π»ΠΎ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠΈΠΌΠΈΡΡ ΠΏΠΎ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ memmove, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ. Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΈΠΏΠ° unsigned char.
Π ΡΠ°Π±Π»ΠΈΡΠ΅ Π½Π° Ρ. 321 ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ s ΠΈ t ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΡΠΈΠΏΡ char *, cs ΠΈ ct β ΡΠΈΠΏΡ const char *, n - ΡΠΈΠΏΡ size_t, Π° c - Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° int, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ ΠΊ ΡΠΈΠΏΡ char.
ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ strtok ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ s Π½Π° Π»Π΅ΠΊΡΠ΅ΠΌΡ. ΠΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»Π΅ΠΌ Π»Π΅ΠΊΡΠ΅ΠΌΡ ΡΠ»ΡΠΆΠΈΡ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΈΠ· ΡΡΡΠΎΠΊΠΈ ct. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ s Π½Π΅ ΡΠ°Π²Π΅Π½ NULL. Π€ΡΠ½ΠΊΡΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡ Π² ΡΡΡΠΎΠΊΠ΅ s ΠΏΠ΅ΡΠ²ΡΡ Π»Π΅ΠΊΡΠ΅ΠΌΡ, ΡΠΎΡΡΠΎΡΡΡΡ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π½Π΅ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π² ct; Π΅Π΅ ΡΠ°Π±ΠΎΡΠ° Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΠΎΠ²Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΏΠΈΡΠ΅ΡΡΡ '\0' ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π»Π΅ΠΊΡΠ΅ΠΌΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ·ΠΎΠ², Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ s ΡΠ°Π²Π΅Π½ NULL, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ Π»Π΅ΠΊΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΡΡΠ°Π·Ρ Π·Π° ΠΊΠΎΠ½ΡΠΎΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ. Π€ΡΠ½ΠΊΡΠΈΡ strtok Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ NULL, Π΅ΡΠ»ΠΈ Π΄Π°Π»Π΅Π΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π»Π΅ΠΊΡΠ΅ΠΌΡ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΎ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ct ΠΎΡ Π²ΡΠ·ΠΎΠ²Π° ΠΊ Π²ΡΠ·ΠΎΠ²Ρ ΠΌΠΎΠΆΠ΅Ρ Π²Π°ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ.