Программирование >>  Структурное программирование 

1 ... 319 320 321 [ 322 ] 323 324 325 ... 342


В случае успеха функция fgets возвращает строку s. Если достигнут конец файла и в массив не введен ни один символ, содержимое массива остается неизменным и возвращается нулевой указатель. Если в процессе выполнения функции происходит ошибка ввода, то содержимое массива не определено, а функция возвращает нулевой указатель.

int fputc(int с, FILE *stream);

Функция fputc записывает символ, определенный параметром с и преобразуемый к типу unsigned char, в поток вывода, указанный stream, в позицию, указанную соответствующим индикатором связанного с потоком файла (если этот индикатор определен), и изменяет значение индикатора текущей позиции файла. Если файл не поддерживает возможности позиционирования или если поток был открыт в режиме добавления, символы добавляются в конец потока вывода. Функция fputc возвращает выведенный символ. Если происходит ошибка записи, в потоке устанавливается индикатор ошибки и fputc возвращает значение EOF.

int fputs(const char *s, FILE *stream);

Функция fputs записывает строку s в поток, указанный параметром stream. Завершающий нулевой символ в поток не записывается. Функция fputs возвращает EOF при возникновении ошибки записи; в противном случае она возвращает неотрицательное значение.

int getc(FILE *stream);

Функция getc эквивалентна fgetc за исключением того, что если она реализуется в виде макроса, то значение stream может вычисляться неоднократно и при этом аргумент должен быть выражением без побочных эффектов.

Функция getc возвращает очередной символ из входного потока, указанного параметром stream. Если в потоке достигается конец файла, то устанавливается индикатор конца файла и getc возвращает EOF. Если происходит ошибка чтения, в потоке устанавливается индикатор ошибки и getc возвращает EOF.

int getchar(void);

Функция getchar эквивалентна getc со значением параметра stdin. Функция getchar возвращает очередной символ из входного потока stdin. Если в потоке достигается конец файла, в нем устанавливается индикатор конца файла и getchar возвращает EOF. Если происходит ошибка чтения, в потоке устанавливается индикатор ошибки и getchar возвращает EOF.

char *gets(char *s);

Функция fgets считывает символы из потока ввода stdin в массив, на который ссылается параметр s, до тех пор, пока не встретится символ конца файла или новой строки. Символ новой строки отбрасывается; за последним введенным в строку символом помещается нулевой символ. В случае успеха функция gets возвращает строку s. Если достигнут конец файла и в массив не введен ни один символ, содержимое массива остается неизмененным и возвращается нулевой указатель. Если в процессе выполнения функции происходит ошибка ввода, то содержимое массива не определено, а функция возвращает нулевой указатель.

int putc (int с, FILE *streaia) ;

Функция putc эквивалентна fputc за исключением того, что если она реализуется в виде макроса, то значение stream может вычисляться неоднократно и при этом аргумент должен быть выражением без побочных эффектов.



Функция putc возвращает выведенный символ. Если происходит ошибка записи, в потоке устанавливается индикатор ошибки и putc возвращает EOF.

int putchar (int с) ;

Функция putchar эквивалентна putc со значением второго параметра stdout. Функция putchar возвращает выведенный символ. Если происходит ошибка записи, в потоке устанавливается индикатор ошибки и putchar возвращает EOF.

int puts(const char *s);

Функция puts записывает строку s в поток stdout и добавляет в поток вывода символ новой строки. Завершающий нулевой символ в поток не записывается. Функция puts возвращает EOF, если возникла ошибка записи; в остальных случаях она возвращает неотрицательное значение.

int ungetc(int с, FILE *stream);

Функция ungetc возвращает символ, определенный параметром с и преобразованный к типу unsigned char, обратно в поток ввода, на который указывает stream. Возвращенные в поток символы могут быть получены обратно последующими операциями чтения в последовательности, обратной последовательности их возвращения в поток. Если в интервале между возвратом символов и их последующим чтением происходит успешное обращение к функциям изменения текущей позиции в файле, связанном с потоком stream (к функциям fseek, fsetpos или rewind), все возвращенные в поток символы теряются. Данные во внешней памяти, соответствующие потоку, остаются неизменными.

Гарантируется возврат только одного символа. Если функция ungetc вызывается слишком много раз для одного и того же потока без промежуточных операций чтения или позиционирования файла этого потока, то операция возвращения символа может потерпеть неудачу. Если значение с равно значению макроса EOF, операция заканчивается неудачей и входной поток остается неизменным.

Успешное обращение к функции ungetc очищает индикатор конца файла потока. Значение индикатора текущей позиции в файле для этого потока после чтения или отбрасывания всех возвращенных символов должно быть равно тому значению этого индикатора, которое он имел до того, как символы были возвращены. Для текстового потока значение индикатора текущей позиции в файле после успешного обращения к функции ungetc не определено до того момента, пока все возвращенные в поток символы не будут прочитаны или отброшены. Для бинарного потока индикатор текущей позиции в файле определен после каждого успешного обращения к функции ungetc; если его значение равнялось нулю перед вызовом ungetc, то значение после вызова будет не определено. Функция ungetc возвращает вытолкнутый в поток символ, преобразовав его, или EOF, если операция терпит неудачу.

size t fread(void *ptr, size t size, size t nmemb, FILE *stream);

Функция fread считывает в массив, на который указывает ptr, не более nmemb элементов размером size каждый из потока, на который указывает stream. Индикатор текущей позиции в файле (если он определен для потока) передвигается на число успешно прочитанных символов. В случае возникновения ошибки значение индикатора текущей позиции в файле для данного потока становится неопределенным. Если элемент прочитан частично, его значение не определено.



Функция fread возвращает число успешно прочитанных элементов данных, которое может быть меньше, чем nmemb в случае возникновения ошибок чтения или обнаружения конца файла. Если size или nmemb равны нулю, то fread возвращает нуль, а содержимое массива и состояние потока остаются без изменений.

size t fwrite (const void *ptr, size t size, size t nmemb, FILE *stream);

Функция fwrite записывает из массива, на который указывает ptr, до nmemb элементов размером size каждый в поток, на который указывает stream. Индикатор текущей позиции в файле (если он определен для потока) передвигается на число успешно записанных символов. В случае возникновения ошибки значение индикатора текущей позиции в файле для данного потока становится неопределенным. Функция fwrite возвращает число успешно записанных элементов, которое может быть меньше, чем nmemb, только в случае возникновения ошибок записи.

int fgetpos(FILE *stream, fpos t *pos);

Функция fgetpos сохраняет значение индикатора текущей позиции в файле потока, на который указывает stream, в объекте, на который указывает pes. Сохраненное значение содержит неопределяемую информацию, пригодную для использования функцией fsetpos при обратном позиционировании потока к позиции, полученной в результате вызова функции fgetpos. В случае успеха функция fgetpos возвращает нуль, при неудачном завершении функция fgetpos возвращает отличное от нуля значение и помещает определяемое реализацией системы положительное значение в еггпо.

int fseek(FILE *stream, long int offset, int whence);

Функция fseek устанавливает индикатор текущей позиции в файле для потока, указанного параметром stream. Для бинарного потока эта новая позиция, измеряемая в числе символов от начала файла, получается добавлением параметра offset к значению позиции, которое определяется параметром whence. Определяемая параметром whence позиция - это: начало файла, если значение whence равно SEEK SET; текущее значение индикатора позиции файла, если значение whence равно SEEK CUR; конец файла для значения SEEK END. Для бинарного потока нет необходимости явно вызывать fseek со значением SEEK END параметра whence. Для текстового потока значение offset должно быть равно либо нулю, либо значению, которое вернула функция ftell в предшествующем вызове для того же самого stream, а значение whence должно быть равно SEEK SET.

Успешный вызов функции fseek очищает индикатор конца файла потока и отменяет результаты вызова функции ungetc для этого потока. После вызова fseek следующей операцией в потоке, открытом для обновления, может быть как операция ввода, так и операция вывода. Функция fseek возвращает отличный от нуля результат только для запроса, который не может быть выполнен.

int fsetpos(FILE *stream, const fpos t *pos);

Функция fsetpos устанавливает значение индикатора текущей позиции файла в потоке, на который указывает stream, в соответствии со значением объекта, на который ссылается параметр pos и которое должно быть получено в результате предшествующего вызова функции fgetpos для того же потока. Успешный вызов функции fsetpos очищает индикатор конца файла для потока и отменяет результаты вызова функции ungetc для того же потока. После вызова fseek следующей операцией в потоке, открытом для обновления, может



1 ... 319 320 321 [ 322 ] 323 324 325 ... 342

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика