Главная
страница 1 ... страница 18страница 19страница 20страница 21страница 22страница 23страница 24

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 (объявленное в ) может содержать номер ошибки, который дает дополнительную информацию о последней из обнаруженных ошибок.

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.




<< предыдущая страница   следующая страница >>
Смотрите также:
Б. Керниган, Д. Ритчи Язык программирования Си Издание 3-е, исправленное Перевод с английского под редакцией Вс. С. Штаркмана Невский Диалект, Санкт-Петербург 2001
3942.83kb.
24 стр.
Шарп Перевод на русский язык под общей редакцией В. Зеленского Санкт-Петербург Б. С. К
2473.89kb.
10 стр.
Как запад стал богатым
5224.01kb.
30 стр.
Сведения о квалификации педагогических кадров
1227.17kb.
5 стр.
Тактика штурмовой авиации
1780.85kb.
12 стр.
Правила написания и оформления дипломных работ издание 3-е, исправленное и дополненное
840.67kb.
6 стр.
Николе М., Шварц Р. Н 63 Семейная терапия. Концепции и методы/Пер, с англ. О. Очкур, А. Шишко
3577.21kb.
23 стр.
Издание 3-е, исправленное Научный редактор издания профессор В. В. Целищев сибирское университетское издательство новосибирского университета новосибирск 2001
12957.91kb.
60 стр.
Сильвия Крэнстон при участии Кэри Уильямс Жизнь и творчество основательницы современного теософского движения Блаватской е. П. Перевод с английского под редакцией
8089.17kb.
47 стр.
Проблемы здоровья и экологии
3773.97kb.
37 стр.
Санкт-Петербург Москва • Харьков • Минск 2001
144.58kb.
1 стр.
Поэтический художественный перевод с английского языка на русский язык: Томас Харди. Thomas Hardy. His Immortality
7.24kb.
1 стр.