Литмир - Электронная Библиотека
Содержание  
A
A

Далее приведена синтаксическая запись функции:

<b>#include &lt;stdio.h&gt;</b>

<b>int fflush(FILE *stream);</b>

fseek

Функция

fseek
— это эквивалент для файлового потока системного вызова
lseek
. Она задает в
stream
позицию для следующей операции чтения этого потока или записи в него. Значения и смысл параметров
offset
и
whence
такие же, как у ранее описанных одноименных параметров вызова
lseek
. Но там, где
lseek
возвращает
off_t
, функция
fseek
возвращает целое число: 0, если выполнилась успешно, и -1 при аварийном завершении с ошибкой, указанной в переменной
errno
. Какое поле деятельности для стандартизации!

Далее приведена синтаксическая запись функции:

<b>#include &lt;stdio.h&gt;</b>

<b>int fseek(FILE *stream, long int offset, int whence);</b>

fgetc, getc и getchar

Функция

fgetc
возвращает из файлового потока следующий байт как символ. Когда она достигает конца файла или возникает ошибка, функция возвращает
EOF
. Для того чтобы различить эти два случая, следует применять функции
ferror
или
feof
.

Далее приведена синтаксическая запись функций:

<b>#include &lt;stdio.h&gt;</b>

<b>int fgetc(FILE *stream);</b>

<b>int getc(FILE *stream);</b>

<b>int getchar();</b>

Функция

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

Функция

getchar
эквивалентна вызову функции
getc(stdin)
и читает следующий символ из стандартного ввода.

fputc, putc и putchar

Функция

fputc
записывает символ в файловый поток вывода. Она возвращает записанное значение или
EOF
в случае аварийного завершения.

<b>#include &lt;stdio.h&gt;</b>

<b>int fputc(int с, FILE *stream); int putc(int c, FILE *stream); int putchar(int c);</b>

Как и в случае функций

fgetc/getc
, функция
putc
— эквивалент
fputc
, но может быть реализована как макрос.

Функция

putchar
— то же самое, что вызов
putc(с, stdout)
, записывающий один символ в стандартный вывод. Имейте в виду, что функция
putchar
принимает, а функция
getchar
возвращает символы как данные типа
int
, а не
char
. Это позволяет индикатору конца файла (
EOF
) принимать значение -1, лежащее вне диапазона кодов символов.

fgets и gets

Функция

fgets
читает строку из файла ввода
stream
.

<b>#include &lt;stdio.h&gt;</b>

<b>char *fgets(char *s, int n, FILE *stream);</b>

<b>char *gets(char *s);</b>

Функция

fgets
пишет символы в строку, заданную указателем
s
, до тех пор, пока не встретится новая строка, либо не будет передано
n-1
символов, либо не будет достигнут конец файла. Любая встретившаяся новая строка передается в строку, принимающую символы, и добавляется завершающий нулевой байт
\0
. Любой вызов передает максимум
n-1
символов, т.к. должен быть вставлен нулевой байт, обозначающий конец строки и увеличивающий общее количество до n байтов.

При успешном завершении функция

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

Функция

gets
аналогична
fgets
за исключением того, что она читает из стандартного ввода и отбрасывает любые обнаруженные обозначения новой строки. Функция добавляет завершающий нулевой байт в принимающую строку.

Примечание

Учтите, что функция

gets
не ограничивает количество символов, которые могут передаваться, поэтому она может переполнить свой пересылочный буфер. По этой причине вам следует избегать применения этой функции и заменять ее функцией
fgets
. Многие проблемы безопасности порождены функциями в программах, сделанных для переполнения буфера тем или иным способом. Это одна из таких функций, поэтому будьте осторожны!

Форматированные ввод и вывод

Для создания вывода управляемого вида существует ряд библиотечных функций, с которыми вы, возможно, знакомы, если программируете на языке С. К ним относятся функция

printf
и родственные функции для вывода значений в файловый поток, а также
scanf
и другие функции для чтения значений из файлового потока.

printf, fprintf и sprintf

Семейство функций

printf
форматирует и выводит переменное число аргументов разных типов. Способ их представления в потоке вывода управляется параметром
format
, являющимся строкой с обычными символами и кодами, называемыми спецификаторами преобразований, указывающими, как и куда выводить остальные аргументы.

52
{"b":"285844","o":1}