Операции над форматированными файлами

Файлы, содержащие форматированные данные, называют форматированными файлами. Ниже представлены функции, которые служат для работы с такими файлами.

Если опустить идентификатор fid в списке аргументов функции fprintf, то вывод будет осуществляться на экран, так же как при использовании стандартного вывода (fid=l).

Таблица 19.1. Специальные символы в строках формата

Символ

Описание

\n

Новая строка

\t

Горизонтальная табуляция

\b

Возврат на один символ

\r

Возврат каретки

\f

Новая страница

\\

Обратный слеш

\" или "

Одиночная кавычка

%%

Процент

Функция fprintf ведет себя, как аналогичная функция fprintf О языка ANSI С и с некоторыми исключениями и расширениями. В табл. 19.1 описаны специальные символы, встречающиеся в строке format. Для вывода числовых или символьных данных в строке формата необходимо использовать спецификаторы, перечисленные в табл. 19.2.

Таблица 19.2. Спецификаторы формата вывода данных

Спецификатор

Описание

 %d Десятичная система обозначений (со знаком)
Одиночный символ


Экспоненциальное представление чисел с использованием символа «е» в нижнем регистре, например 3.1415е + 00

Экспоненциальное представление чисел с использованием символа «Е» в верхнем регистре, например 3.1415Е + 00

%f

Система обозначений с фиксированной точкой

%g

Наиболее компактный вариант из %е и %f. Незначащие нули не выводятся

%G

То же самое, что и %д, но используется верхний регистр для символа «Е»


Восьмеричная система обозначений (без знака)

%s

Строка символов

%u

Десятичная система обозначений (без знака)

%x


Шестнадцатеричная система обозначений с использованием символов нижнего регистра («a»...«f»)

%X

Шестнадцатеричная система обозначений с использованием верхнего регистра символов («A»...«F»)

Между знаком процента и буквой в спецификатор могут быть вставлены дополнительные символы. Их значение поясняет табл. 19.3.

Таблица 19.3. Параметры спецификаторов формата

Символ

Описание

Пример

Знак «минус» (-)

Выравнивание преобразованных аргументов по левому краю

%-5.2d

Знак «плюс» (+)

Всегда печатать знак числа (+ или -)

%+5.2d

Ноль (0)

Заполнение нулями вместо пробелов

%05.2d

Цифры

Определяет минимальное число знаков, которые будут напечатаны

%6f

Цифры (после точки)

Число после точки определяет количество символов, печатаемых справа от десятичной точки

%6.2f

Строка format состоит из обычных символов и (или) спецификаторов. Спецификаторы указывают тип считываемых данных и включают символ %, опцию ширины поля и символы формата. Возможные символы формата перечислены в табл. 19.4.

Таблица 19.4. Символы формата, используемые функцией fscanf

Символ

Описание

%c

Последовательность символов; параметр ширины поля определяет количество считываемых символов

%d

Десятичное число

%e, %f, %g

Число с плавающей точкой

%i

Целое число со знаком

%o

Восьмеричное число со знаком

%s

Последовательность непробельных символов

%u

Десятичное целое число со знаком

%x

Шестнадцатеричное целое число со знаком

[...]

Последовательность символов

Между символом % и символом формата допустимо вставлять следующие символы:

Примеры:

» х = 0:pi/10:pi:y-[x:sin(x)];

» fid = fopent 'c:\sin.txt'. V);

» fprintf(fid.'X5.3f *10.6f\n'.y):fclose(fid);

0.000 0.000000

0.314 0.309017

0.628 0.587785

0.942 0.809017

1.257 0.951057

1.571 1.000000

1.885 0.951057

2.199 0.809017

2.513 0.587785

2.827 0.309017

3.142 0.000000

» fid = fopen('c:\sin.txt'.'r');

» q=fscanf(fid.'*g'.[2.10]):

» q '

ans =

0 0

0.3140 0.3090

0.6280 0.5878

0.9420 0.8090

1.2570 0.9511

1.5710 1.0000

1.8850 0.9511

2.1990 0.8090

2.5130 0.5878

2.8270 0.3090

 » fgetl(fid) 

ans =

3.142 0.000000 

» fgets(fid) 

ans =

-1

» fclose(fid) 

ans=

0