Файлы, содержащие форматированные данные, называют
форматированными файлами.
Ниже представлены функции, которые служат для работы с такими файлами.
line = fgetl (fid) — возвращает строку
из
файла с идентификатором fid с удалением символа конца строки. Если функция fgetl обнаруживает конец файла, то она возвращает значение -1 (см. функцию fopen с более подробным описанием fid);
line = f gets (fid) — возвращает строку из файла с идентификатором fid, не удаляя символ конца строки. Если функция fgets обнаруживает конец файла, то она возвращает значение -1;
line = fgets(fid.nchar) — возвращает не больше чем nchar первых символов строки. После признака конца строки или конца файла никакие дополнительные символы не считываются (см. примеры к функции fscanf);
count = fprintf(fid.format,A....) — форматирует данные, содержащиеся в действительной части матрицы А, под контролем строки format и записывает их в файл с идентификатором fid. Функция fprintf возвращает число записанных байтов. Значение идентификатора fid — целое число, возвращаемое функцией fopen.
Если опустить идентификатор fid в списке аргументов функции fprintf, то вывод будет осуществляться на экран, так же как при использовании стандартного вывода (fid=l).
fprintf(format,A....) — запись осуществляется на стандартное устройство — экран (но не в файл). Строка format определяет систему счисления, выравнивание, значащие цифры, ширину поля и другие атрибуты выходного формата. Она может содержать обычные буквы алфавита наряду со спецификаторами, знаками выравнивания и т. д.
Таблица 19.1.
Специальные символы в строках формата
|
Символ |
Описание | ||||
| \n | Новая строка | ||||
| \t | Горизонтальная табуляция | ||||
| \b | Возврат на один символ | ||||
| \r | Возврат каретки | ||||
| \f | Новая страница | ||||
| \\ | Обратный слеш | ||||
| \" или " | Одиночная кавычка | ||||
| %% | Процент |
Функция fprintf ведет себя, как аналогичная функция fprintf О языка ANSI С и с некоторыми исключениями и расширениями. В табл. 19.1 описаны специальные символы, встречающиеся в строке format. Для вывода числовых или символьных данных в строке формата необходимо использовать
|
Спецификатор |
Описание |
|
|
%d |
Десятичная система обозначений (со знаком) |
|
|
%с |
Одиночный символ |
|
|
%е |
Экспоненциальное представление чисел с использованием символа «е» в нижнем регистре, например 3.1415е + 00 |
|
|
%Е |
Экспоненциальное представление чисел с использованием символа «Е» в верхнем регистре, например 3.1415Е + 00 |
|
|
%f |
Система обозначений с фиксированной точкой |
|
|
%g |
Наиболее компактный вариант из %е и %f. Незначащие нули не выводятся |
|
|
%G |
То же самое, что и %д, но используется верхний регистр для символа «Е» |
|
|
%о |
Восьмеричная система обозначений (без знака) |
|
|
%s |
Строка символов |
|
|
%u |
Десятичная система обозначений (без знака) |
|
|
%x |
Шестнадцатеричная система обозначений с использованием символов нижнего регистра («a»...«f») |
|
|
%X |
Шестнадцатеричная система обозначений с использованием верхнего регистра символов («A»...«F») |
|
Символ |
Описание |
Пример |
|
Знак «минус» (-) |
Выравнивание преобразованных аргументов по левому краю |
%-5.2d |
|
Знак «плюс» (+) |
Всегда печатать знак числа (+ или -) |
%+5.2d |
|
Ноль (0) |
Заполнение нулями вместо пробелов |
%05.2d |
|
Цифры |
Определяет минимальное число знаков, которые будут напечатаны |
%6f |
|
Цифры (после точки) |
Число после точки определяет количество символов, печатаемых справа от десятичной точки |
%6.2f |
|
Символ |
Описание |
||
|
%c |
Последовательность символов; параметр ширины поля определяет количество считываемых символов |
||
|
%d |
Десятичное число |
||
|
%e, %f, %g |
Число с плавающей точкой |
||
|
%i |
Целое число со знаком |
||
|
%o |
Восьмеричное число со знаком |
||
|
%s |
Последовательность непробельных символов |
||
|
%u |
Десятичное целое число со знаком |
||
|
%x |
Шестнадцатеричное целое число со знаком |
||
|
[...] |
Последовательность символов |
||