Операции над форматированными файлами
Файлы, содержащие форматированные данные, называют форматированными файлами. Ниже представлены функции, которые служат для работы с такими файлами.
- 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. Для вывода числовых или символьных данных в строке формата необходимо использовать спецификаторы, перечисленные в табл. 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 |
- А = fscanf(fid,format) – читает все данные из файла с идентификатором, fid, преобразует их согласно значению параметра format и возвращает в виде матрицы А. Значение идентификатора fid – целое число, возвращаемое функцией fopen. Параметр format представляет собой строку, определяющую формат данных, которые необходимо прочитать;