CodeNet / Языки программирования / C / C++ / Linux/Unix / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
frexp
FREXP
#include <math.h>
double frext(x,expptr);
double x; значение с плавающей точкой.
int *expptr; указатель на целую экспоненту.
Описание:
Функция frexp разрывает значение с плавающей точкой x на
мантиссу m и экспоненту n, так что абсолютное значение m больше
или равно 0.5 и меньше 10 и x равен m, умноженную на 2 в степени
n. Целое значение экспоненты n хранится в расположении, указанном
по expptr.
Возвращаемое значение:
Функция frext возвращает мантиссу m. Если x равен 0, функ-
ция возвращает 0 для мантиссы и экспоненты. Возвращаемого значе-
ния в случае ошибки нет.
См.также ldex, modf.
Пример.
#include <math.h>
double x,y;
int n;
.
.
.
x = 16.4;
/* y будет равен .5125, n будет равно 5 */
y = frexp(x,&n);
FSCANF.
#include <stdio.h>
int fscanf (stream, format-string [, argument ...]);
FILE *stream; указатель на структуру FILE.
char *format-string; строка управления форматом.
Описание:
Функция fscanf считывает данные из текущей позиции потока
stream в место, определяемое заданием аргументов arguments (если
они есть).
Каждый аргумент должен быть указателем на переменную и тип,
которые соответствуют типу, заданному в строке формата. Строка
формата управляет интерпретацией полей ввода и имеет ту же самую
форму и назначение, что и аргумент строки формата для функции
scanf. (Описание функции scanf приводится ниже в данной части ру-
ководства).
Возвращаемое значение:
Данная функция возвращает число удачно преобразованных и
правильно назначенных полей. Возвращаемое значение не включает
полей, прочитанных, но не назначенных. При попытке считывания
конца файла возвращается значение EOF. Возвращаемое значение 0
обозначает, что нет назначенных полей.
См. также cscanf, fprintf, scanf, sscanf.
Пример.
#include <stdio.h>
FILE *stream;
long l;
float fp;
char s[81];
char c;
stream = fopen ("data", "r");
.
.
.
/* ввод различных данных */
fscanf (stream, "%s", s);
fscanf (stream, "%c", &c);
fscanf (stream, "%ld", &l);
fscanf (stream, "%f", &fp);.
FSEEK.
#include <stdio.h>
int fseek (stream, offset, origin);
FILE *stream; указатель на структуру FILE.
long offset; число байтов от origin.
int origin; начальная позиция.
Описание:
Функция fseek перемещает указатель, соответствующий потоку
stream, на новое место расположения, отстоящее от origin на
offset байтов. Следующая операция в потоке выполняется над новым
месторасположением.
Если поток открыт для обновления, то следующей операцией
будет либо чтение, либо запись.
Аргумент origin может быть одной из следующих констант, оп-
ределенных в <stdio.h>.
ORIGIN ОПРЕДЕЛЕНИЕ
(источник, начало)
SEEK-SET начало файла.
SEEK-CUR текущая позиция указателя на
файл.
SEEK-END конец файла.
Функция fseek используется для перемещения указателя в лю-
бое место файла. Указатель может быть также размещен за концом
файла. Однако, попытка расположить указатель до начала файла
приведет к ошибке.
Возвращаемое значение:
Функция fseek возвращает значение 0, если указатель успешно
перемещен. В случае ошибки возвращается любое ненулевое значе-
ние. Для устройств, не совместимых с операцией seek, (таких как
терминал и печать), возвращаемое значение неопределено.
См. также ftell, lseek, rewind.
Замечание! Для потоков, открытых в текстовом (преобразую-
щем) режиме, применение fseek является ограниченным, т.к. комби-
нации ВК - ПС могут стать причиной выработки непредвиденного ре-
зультата.
Ниже приведены операции (действия) fseek, гарантирующие ра-
боту с потоками, открытыми в текстовом режиме:
* смещение origin на величину offset, равную нулю;
* смещение от начала файла на значение offset, полученное
после вызова функции ftell.
Пример.
#include <stdio.h>
FILE *stream;
int result;
stream = fopen("data", "r");
.
.
.
/* следущий оператор возвращает указатель на файл к началу
файла */
result = fseek(stream, 0L, SEEK_SET);.
