Операции над форматированными файлами
Файлы, содержащие форматированные данные, называют форматированными файлами. Ниже представлены функции, которые служат для работы с такими файлами.
- 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 представляет собой строку, определяющую формат данных, которые необходимо прочитать;
