§ 9. Текстовые файлы
MatLab предлагает достаточно универсальные способы считывания данных из текстовых файлов и записи данных в требуемом виде в текстовый файл. Рассмотрим сначала оперирование с числовыми данными, представленными матрицами и векторами. Пусть в текстовом файле vec.dat в столбик записаны числа в соответствии с правилами MatLab, т.е. для отделения десятичных знаков используется точка, а для записи числа в экспоненциальном виде применяется символ e. Функция load позволяет занести содержимое файла vec.dat в числовой массив. Имя файла, заключенное в апострофы, указывается во входном аргументе load, а в выходном аргументе возвращается вектор-столбец 1 :
Обратная операция — запись значений вектор-столбца в файл — производится при помощи команды save, аргументами которой являются: имя файла, переменная, и дополнительный параметр –ascii, означающий запись в текстовом виде:
» save ‘vec2.dat’ v2 –ascii
Если числа в текстовом файле расположены в строку и разделены пробелами, то результатом считывания будет вектор-строка. Верно и обратное, запись значений вектор-строки приведет к занесению их в строку в текстовом файле.
Запись матрицы командой save приводит к образованию текстового файла с таблицей чисел. Текстовый файл, в каждой строке которого находится одинаковое количество чисел, отделенных друг от друга пробелами, считывается в двумерный массив функцией load.
Команды load и save предназначены только для простейшего ввода-вывода числовых данных. Разберем теперь более сложный случай, когда считываемая или записываемая информация содержит не только числа, но и текст. Работа с текстовыми файлами состоит из трех этапов:
считывание или запись данных;
Для открытия файла служит функция fopen, которая вызывается с двумя входными аргументами: именем файла и строкой, задающей способ доступа к файлу. Выходным аргументом fopen является идентификатор файла, т.е. переменная, которая впоследствии используется при любом обращении к файлу. Функция fopen возвращает –1, если при открытии файла возникла ошибка. Существует четыре основных способов открытия файла:
f=fopen(‘myfile.dat’,’rt’) — открытие текстового файла myfile.dat только для чтения из него;
f=fopen(‘myfile.dat’,’rt+’) — открытие текстового файла myfile.dat для чтения и записи данных;
f=fopen(‘myfile.dat’,’wt’) — создание пустого текстового файла myfile.dat только для записи данных;
f=fopen(‘myfile.dat’,’wt+’) — создание пустого текстового файла myfile.dat для записи и чтения данных.
При использовании двух последних вариантов следует соблюдать осторожность — если файл myfile.dat уже существует, то его содержимое будет уничтожено. После открытия файла появляется возможность считывать из него информацию, или заносить ее в файл. По окончании работы с файлом необходимо закрыть его при помощи fclose(f).
Построчное считывание информации из текстового файла производится при помощи функции fgetl. Входным аргументом fgetl является идентификатор файла, а выходным — текущая строка. Каждый вызов fgetl приводит к считыванию одной строки и переводу текущей позиции в файле на начало следующей строки. Команды, приведенные на листинге 9.1, последовательно считывают из файла myfile.dat первые три строки в строковые переменные str1, str2, str3.
Листинг 9.1. Считывание трех первых строк из текстового файла
При последовательном считывании рано или поздно будет достигнут конец файла, при этом функция fgetl вернет минус 1. Лучше всего перед считыванием проверять, не является ли текущая позиция в файле последней. Для этого предназначена функция feof, которая вызывается от идентификатора файла и возвращает единицу, если текущая позиция последняя и ноль, в противном случае. Обычно последовательное считывание организуется при помощи цикла while. Листинг 9.2 содержит файл-функцию viewfile, которая считывает строки файла, и выводит их в командное окно.
Листинг 9.2. Файл-функция viewfile
Вызов viewfile(‘viewfile.m’) приводит к отображению текста самой файл-функции в командном окне.
Строки записываются в текстовый файл при помощи функции fprintf, ее первым входным аргументом является идентификатор файла, а вторым — добавляемая строка. Символ \n служит для перевода строки. Если поместить его в конец добавляемой строки, то следующая команда fprintf будет осуществлять вывод в файл с новой строки, а если \n находится в начале, то текущая команда fprintf выведет текст с новой строки. Например, последовательность команд (листинг 9.3) приведет к появлению в файле my.txt текста из двух строк (листинг 9.4).
Листинг 9.3. Вывод строк в текстовый файл
fprintf(f,’а этот текст с новой строки’);
Листинг 9.4. Результат работы операторов листинга 9.3
текст еще текст
а этот текст с новой строки
Аналогичного результата можно добиться, переместив \n из конца строки второй функции fprintf в начало строки третьей функции fprintf. Аргументом fprintf может быть не только строка, но и строковая переменная. В этом случае для обеспечения вывода с новой строки ее следует сцепить со строкой ‘\n’.
Строка, предназначенная для вывода в текстовый файл, может содержать как текст, так и числа. Часто требуется выделить определенное количество позиций под число и вывести его в экспоненциальном виде или с плавающей точкой и с заданным количеством цифр после десятичной точки. Здесь не обойтись без форматного вывода при помощи fprintf, обращение к которой имеет вид:
fprintf(идентификатор файла, ‘форматы’, список переменных)
В списке переменных могут быть как числовые переменные (или числа), так и строковые переменные (или строки). Второй аргумент является строкой специального вида с форматами, в которых будут выводится все элементы из списка. Каждый формат начинается со знака процента. Для вывода строк используется формат s, а для вывода чисел — f (с плавающей точкой) или e (экспоненциальный). Число перед s указывает количество позиций, отводимых под вывод строки. При выводе значений числовых переменных перед f или e ставится два числа, разделенных точкой. Первое из них означает количество позиций, выделяемых под все значение переменной, а второе — количество знаков после десятичной точки. Таким образом, под каждый из элементов списка отводится поле определенной длины, выравнивание в котором по умолчанию производится по правому краю. Для выравнивания по левому краю следует после знака процента поставить знак минус. Ниже приведены варианты вызова fprintf и результаты, незаполненные позиции после вывода (пробелы) обозначены символом ○.
fprintf(f,’%6.2f’, pi) ○○3.14
fprintf(f,’%-6.2f’, pi) 3.14○○
fprintf(f,’%14.4e’, exp(-5)) ○○○6.7379e-003
fprintf(f,’%-14.4e’, exp(-5)) 6.7379e-003○○○
fprintf(f,’%8s’, ‘текст’) ○○○текст
fprintf(f,’%-8s’, ‘текст’) текст○○○
В случае, когда зарезервированного поля не хватает под выводимую строку или число, MatLab автоматически увеличивает длину поля 1 , например:
fprintf(f,’%5.4e’, exp(-5)) 6.7379e-003
При одновременном выводе чисел и текста пробелы могут появляться из-за неполностью заполненных полей, выделенных как под числа, так и под строки. Приведенные ниже операторы и результат их выполнения демонстрируют расположение полей в строке текстового файла. Волнистой линией подчеркнуты поля, выделенные под числа, а прямой — под строки, символ ○ по-прежнему обозначает пробелы.
Форматный вывод удобен при формировании файла с таблицей результатов. Предположим, что необходимо записать в файл f.dat таблицу значений функции для заданного числа n значений
, отстоящих друг от друга на одинаковое расстояние. Файл с таблицей значений должен иметь такую структуру, как показано на листинге 9.5.
Листинг 9.5. Текстовый файл с таблицей значений функции
Очевидно, что следует организовать цикл от начального значения аргумента до конечного с шагом, соответствующим заданному числу точек, а внутри цикла вызывать fprintf с подходящим списком вывода и форматами. Символ \n, предназначенный для перевода строки, помещается в конец строки с форматами (см. листинг 9.6) .
Листинг 9.6. Файл-функция tab, выводящая таблицу значений функции
Обратимся теперь к считыванию данных из текстового файла. Функция fscanf осуществляет обратное действие по отношению к fprintf. Каждый вызов fscanf приводит к занесению данных, начинающихся с текущей позиции, в переменную. Тип переменной определяется заданным форматом. В общем случае, обращение к fscanf имеет вид:
a=fscanf(идентификатор файла, ‘формат’, число считываемых элементов)
Для считывания строк используется формат %s, для целых чисел — %d, а для вещественных — %g.
Предположим, что файл exper.dat содержит текст, приведенный на листинге 9.7. Данные отделены друг от друга пробелами. Требуется считать дату проведения эксперимента (число, месяц и год) в подходящие переменные, а результаты занести в числовые массивы TIME и DAT.
Листинг 9.7. Файл с данными exper.dat
Результаты экспериментов 10 мая 2002
t= 0.1 0.2 0.3 0.4 0.5
G= 3.02 3.05 2.99 2.84 3.11
Считывание разнородных данных (числа, строки, массивы) требует контроля, который достигается применением форматов. Первые два элемента файла exper.dat являются строками, следовательно можно сразу занести их в одну строковую переменную head. Очевидно, надо указать формат %s и число 2 считываемых элементов 1 . Далее требуется считать целое число 10, строку ‘мая’ и снова целое число 2002. Обратите внимание, что перед заполнением массива TIME еще придется предусмотреть считывание строки ‘t=’. Теперь все готово для занесения пяти вещественных чисел в вектор-столбец TIME при помощи формата %g. Данные из последней строки файла exper.dat извлекаются аналогичным образом (листинг 9.8).
Листинг 9.8. Применение fscanf для считывания данных
Информация в текстовом файле может быть представлена в виде таблицы. Для считывания такой информации следует использовать массив структур с подходящим набором полей. Считывание всей информации реализуется в цикле while, в условии которого производится проверка на достижение конца файла при помощи функции feof.
Функция fscanf предоставляет возможность считывать числа из текстового файла не только в вектор-столбец, но и массив заданных размеров. Расположение чисел по строкам в файле не имеет значения. Размеры формируемого массива указываются в векторе в третьем входном аргументе fscanf. Рассмотрим считывание числовых данных из файла matr.txt (листинг 9.9).
Листинг 9.9. Текстовый файл matr.txt с матрицей
Функция fscanf формирует столбец матрицы, последовательно считывая числа из файла (т. е. построчно). Следовательно, для заполнения матрицы с тремя строками и четырьмя столбцами, необходимо считать данные из файла в массив четыре на три, а затем транспонировать его (листинг 9.10).
Листинг 9.10. Считывание матрицы из текстового файла
Обратите внимание, что массив может иметь размеры не только 3 на 4. Поскольку данные считываются подряд, то они могут быть занесены и в массив 2 на 6, и 4 на 3 и т. д.
MATLAB – импорт данных
Загружает данные в массив A из файла, обозначенного именем файла .
A = importdata (‘- pastespecial’)
Загружает данные из системного буфера обмена, а не из файла.
A = importdata (___, delimiterIn)
Интерпретирует delimiterIn как разделитель столбцов в файле ASCII, имени файла или данных буфера обмена. Вы можете использовать delimiterIn с любым из входных аргументов в приведенных выше синтаксисах.
A = importdata (___, delimiterIn, headerlinesIn)
Загружает данные из файла ASCII, имени файла или буфера обмена, считывая числовые данные, начиная со строки headerlinesIn + 1 .
[A, delimiterOut, headerlinesOut] = importdata (___)
Возвращает обнаруженный символ разделителя для входного файла ASCII в delimiterOut и обнаруженное количество строк заголовка в headerlinesOut , используя любой из входных аргументов в предыдущих синтаксисах.
A = importdata (имя файла)
Загружает данные в массив A из файла, обозначенного именем файла .
A = importdata (‘- pastespecial’)
Загружает данные из системного буфера обмена, а не из файла.
A = importdata (___, delimiterIn)
Интерпретирует delimiterIn как разделитель столбцов в файле ASCII, имени файла или данных буфера обмена. Вы можете использовать delimiterIn с любым из входных аргументов в приведенных выше синтаксисах.
A = importdata (___, delimiterIn, headerlinesIn)
Загружает данные из файла ASCII, имени файла или буфера обмена, считывая числовые данные, начиная со строки headerlinesIn + 1 .
[A, delimiterOut, headerlinesOut] = importdata (___)
Возвращает обнаруженный символ разделителя для входного файла ASCII в delimiterOut и обнаруженное количество строк заголовка в headerlinesOut , используя любой из входных аргументов в предыдущих синтаксисах.
По умолчанию Octave не поддерживает функцию importdata () , поэтому вам придется искать и устанавливать этот пакет, чтобы следующие примеры работали с вашей установкой Octave.
Пример 1
Давайте загрузим и отобразим файл изображения. Создайте файл сценария и введите в нем следующий код –
Когда вы запускаете файл, MATLAB отображает файл изображения. Однако вы должны сохранить его в текущем каталоге.
Пример 2
В этом примере мы импортируем текстовый файл и указываем разделитель и заголовок столбца. Давайте создадим ASCII-файл, разделенный пробелами, с заголовками столбцов с именем weeklydata.txt .
Наш текстовый файл weeklydata.txt выглядит так –
Создайте файл сценария и введите в нем следующий код –
Когда вы запускаете файл, он показывает следующий результат –
Пример 3
В этом примере давайте импортируем данные из буфера обмена.
Скопируйте следующие строки в буфер обмена –
Математика проста
Создайте файл сценария и введите следующий код –
Когда вы запускаете файл, он показывает следующий результат –
Низкоуровневый файловый ввод / вывод
Функция importdata является высокоуровневой функцией. Низкоуровневые функции ввода / вывода файлов в MATLAB позволяют максимально контролировать чтение или запись данных в файл. Однако эти функции нуждаются в более подробной информации о вашем файле для эффективной работы.
MATLAB предоставляет следующие функции для операций чтения и записи на уровне байтов или символов:
функция | Описание |
---|---|
fclose | Закройте один или все открытые файлы |
feof | Тест на конец файла |
FERROR | Информация об ошибках файлового ввода-вывода |
fgetl | Чтение строки из файла, удаление символов новой строки |
fgets | Читать строку из файла, сохраняя символы новой строки |
Еореп | Откройте файл или получите информацию об открытых файлах |
fprintf | Записать данные в текстовый файл |
Fread | Чтение данных из двоичного файла |
frewind | Переместить индикатор положения файла в начало открытого файла |
fscanf | Читать данные из текстового файла |
FSEEK | Переместить в указанную позицию в файле |
ftell | Положение в открытом файле |
FWRITE | Записать данные в двоичный файл |
Импорт текстовых файлов данных с низкоуровневым вводом / выводом
MATLAB предоставляет следующие функции для низкоуровневого импорта файлов текстовых данных –
Функция fscanf читает отформатированные данные в текстовом или ASCII-файле.
Функции fgetl и fgets читают по одной строке файла за раз, где символ новой строки разделяет каждую строку.
Функция fread считывает поток данных на уровне байтов или битов.
Функция fscanf читает отформатированные данные в текстовом или ASCII-файле.
Функции fgetl и fgets читают по одной строке файла за раз, где символ новой строки разделяет каждую строку.
Функция fread считывает поток данных на уровне байтов или битов.
пример
У нас есть текстовый файл данных «myfile.txt», сохраненный в нашем рабочем каталоге. Файл хранит данные об осадках за три месяца; Июнь, июль и август за 2012 год.
Данные в myfile.txt содержат повторные наборы измерений времени, месяца и количества осадков в пяти местах. Данные заголовка хранят количество месяцев M; таким образом, у нас есть M наборов измерений.
Файл выглядит так –
Мы импортируем данные из этого файла и отображаем эти данные. Сделайте следующие шаги –
Откройте файл с помощью функции fopen и получите идентификатор файла.
Опишите данные в файле с помощью спецификаторов формата , таких как « % s » для строки, « % d » для целого числа или « % f » для числа с плавающей запятой.
Чтобы пропустить буквенные символы в файле, включите их в описание формата. Чтобы пропустить поле данных, используйте звездочку (‘*’) в спецификаторе.
Например, чтобы прочитать заголовки и вернуть единственное значение для M, мы пишем –
По умолчанию fscanf считывает данные в соответствии с нашим описанием формата, пока не найдет совпадения для данных или не достигнет конца файла. Здесь мы будем использовать цикл для чтения 3 наборов данных и каждый раз будем читать 7 строк и 5 столбцов.
Мы создадим структуру с именем mydata в рабочей области для хранения данных, считанных из файла. Эта структура имеет три поля – время , месяц и массив raindata .
Откройте файл с помощью функции fopen и получите идентификатор файла.
Опишите данные в файле с помощью спецификаторов формата , таких как « % s » для строки, « % d » для целого числа или « % f » для числа с плавающей запятой.
Чтобы пропустить буквенные символы в файле, включите их в описание формата. Чтобы пропустить поле данных, используйте звездочку (‘*’) в спецификаторе.
Например, чтобы прочитать заголовки и вернуть единственное значение для M, мы пишем –
По умолчанию fscanf считывает данные в соответствии с нашим описанием формата, пока не найдет совпадения для данных или не достигнет конца файла. Здесь мы будем использовать цикл для чтения 3 наборов данных и каждый раз будем читать 7 строк и 5 столбцов.
Мы создадим структуру с именем mydata в рабочей области для хранения данных, считанных из файла. Эта структура имеет три поля – время , месяц и массив raindata .
Как открыть текстовый файл в матлаб
Одним из самых простых способов сохранения вычисленных значений является сохранение рабочей среды (всех переменных) с помощью команды File — Save Workspace As … . При этом открывается диалоговое окно, в котором необходимо указать папку и имя сохраняемого файла. Файл рабочей среды имеет расширение mat . После выполнения этой команды все переменные и значения рабочей среды будут храниться в одном файле с расширением mat . Для загрузки рабочей среды необходимо выполнить команды File — Open .
Кроме сохранения переменных в файле рабочей среды в Matlab есть есть возможности работы с текстовым файлом, как и в языке программирования Си.
Для записи данных в текстовый файл необходимо выполнить следующие действия:
1. Открыть файл с помощью фунции fopen . Функция fopen ( filename , mode ) имеет два параметра: filename и – строка, в которой хранится полное имя открываемого файла, mode – строка, которая определяет режим работы с файлом; возможны следующие значения: « rt » — открываем текстовый файл в режиме чтения; « wt » — создаем пустой текстовый файл для записи; « rt +» — открываем текстовый файл в режиме чтения и записи; « wt +» — открываем пустой текстовый файл, в этом режиме можно записывать и читать данные из файла. Функция возвращает два параметра: файловая переменная и строка символов, в которой хранится сообщение о результатах открытия файла.
2. Записать данные в файл с помощью функции printf . Обращение к функции printf имеет следующий вид: printf ( F , s 1, s 2), где F – имя файловой переменной, s 1 – строка вывода, s 2 – список выводимых переменных. В строке вывода могут использоваться некоторые специальные символы:
o \ b – сдвиг текущей позиции влево;
o \ n – перевод строки;
o \ t – горизонтальная табуляция.
В строке вывода вместо выводимых переменных указывается строка преобразования следующего вида: % n . m , где n – ширина поля вывода; если позиций недостаточно, то поле вывода расширяется до минимального необходимого, незаполненные позиции заполняются пробелами; m – количество знаков после десятичной точки. В качестве типа могут использоваться следующие латинские буквы: c – символ, d – целое десятичное число, o – целое восьмеричное число, x – целое шестнадцатеричное число, f – вещественное число вида [+] dddd . dddd , e – вещественное число в экспоненциальной форме вида + d . dddde [+] ddd , g – вещественное число вида e или f в зависимости от значения и точности, s – строка символов.
3. Закрыть файл с помощью функции fclose ( F ), F .
Для чтения данных из файла необходимо:
1. Открыть файл с помощью функции fopen .
2. Считать данные из файла с помощью функции fscanf . Обращение к функции fscanf имеет вид: A = fscanf ( F , s 1). В переменную А считываются данные из файла в соответствии со строкой s 1.
3. Закрыть файл (функция fclose ) .
Рассмотрим пример записи в файл значений: x = p /7 и y = cos ( x ).
На рисунке ниже представлено вычисление x и y и запись их в текстовый файл abc . txt .
Содержимое текстового файла abc . txt :
Теперь рассмотрим два способа чтения данных из файла abc . txt . На рисунке представлено чтение содержимого файла abc . txt в переменную h .
На следующем рисунке показан пример чтения содержимого файла abc . txt в переменную p и s :
Чтение и запись текстовых файлов
Система MATLAB имеет ряд команд для работы с файлами вида *.txt, *.html, *.m и *.mat.
Команда/ореи. Она дает доступ к файлу типа *.txt, *.html, *.m и *.mat. Формат команды
Fid=fopen [‘имя файла’] [‘мода’].
Переменная Fid называется файловым идентификатором. Она может иметь любое имя, разное для разных файлов. Переменная Fid принимает значение 1, если доступ открыт и значение -1, если доступ к файлу невозможен. Команда fopen применяется как для уже существующих файлов, так и для файлов, которые будут записаны. Мода может быть следующей.
Таблица 1.2.3. Мода открытия файла
Мода Описание
‘ rt’ Открытие файла для чтения (по умолчанию)
‘ wt’ Открытие файла, или создание нового для записи. Если файл существует, то он будет удален без предупреждения, вместо него создается новый пустой файл с тем же именем
‘ at’ Открытие файла, или создание нового для записи. Если файл существует, то добавление данных в конец файла
‘ rt+’ Открытие файла для чтения и записи. Если файл существует, то новые данные будут записаны сначала, но место старых данных
‘ wt+’ Открытие файла для чтения и записи. Если файл существует, то он будет удален без предупреждения, вместо него создается новый пустой файл с тем же именем
‘ at+’ Открытие файла, или создание нового для чтения и записи, добавление данных в конец файла
Файл filename должен быть либо в текущем каталоге, либо иа путях MATLAB, либо должен быть указан полный путь. По умолчанию новый файл записывается в текущий каталог. Команда fopen открывает и бинарные файлы *.mat, в этом случае мода не содержит буквы ‘ t’.
Команда fclose. Закрывает доступ к открытому ранее файлу, fclose(fid) -закрытие файла с идентификатором fid, fclosc(all)) — закрытие всех открытых файлов.
Команда fscanf. Чтение форматированных данных из файла, к которому открыт доступ командой fopen. Формат команды
А = fscanf(fid, ‘format’,size)
Параметр size определяет размерность массива в MATLAB, который будет создан при чтении данных из файла с идентификатором fid. Параметр size может иметь вид:
- • п — чтение п элементов в столбец;
- • inf — чтение элементов в столбец до конца;
- • [п ш] — чтение в матрицу размера п-на-ш.
Отметим, что команда fscanf читает данные из файла по строкам, а записывает их в массив MATLAB по столбцам так, как указано в size. MATLAB читает данные из указанного файла в соответствии с заданным форматом. Параметр format может быть следующим:
Таблица 1.2.4. Формат чтения
СП о° 4-І оо О t Ф
Числа с плавающей запятой (экспоненциальный, с фиксированной запятой и компактный вид)
Целое число со знаком
Восьмеричное целое число со знаком
Ряд символов без пробелов
Десятичное целое число со знаком
Шестнадцатеричное целое число со знаком
Команда fprint. Запись форматированных данных в файл, к которому открыт доступ командой fopen. Формат команды
Здесь fid есть идентификатор открытого ранее файла. Имя файла указано при его открытии. А — массив, который будет записан в файл. Отмстим, что команда fprint читает данные из массива MATLAB по столбцам, а пишет их в файл по строкам.
MATLAB пишет данные из указанного массива в файл в соответствии с заданным форматом. Строка формата указывает к какому виду следует преобразовать данные для записи. Строка формата записи начинается с символа (%) и содержит следующие необходимые и дополнительные и элементы:
- • флаги (дополнительно);
- • поля ширины и точности (дополнительно);
- • символ преобразования (необходим).
Например, в записи «%-12.5е» знак «минус» есть флаг, число 12 определяет ширину поля (общее количество цифр), число 5 — это количество знаков после запятой и, наконец, буква «е» определяет, к какому типу будут преобразованы данные для записи.
Кроме того, применяются символы, которые управляют процессом вывода:
Таблица 1.2.5. Формат вывода данных
Формат Описание
п Переход на новую строку
Ь Возврат назад на один символ
Пробелы в строке формата записываются как пробелы
Возможные флаги указаны в табл. 1.2.6.
Таблица 1.2.6. Флаги команды fprint
Символ Описание
Знак минус (-) Левое выравнивание преобразованных параметров
Знак плюс (+) Всегда печатать символ знака (+ или-)
Нуль (0) Замещение нулями вместо пробелов
Символ преобразования может быть следующим:
Таблица 1.2.7. Символы преобразования команды fprint
Десятичное представление чисел (со знаком)
Экспоненциальное представление чисел (как в 3.1415е+00)
С фиксированной точкой
Компактный вид, без лишних нулей
Десятичное представление чисел (со знаком)
Десятичное представление чисел (без знака)
Шестнадцатеричное представление (с использованием символов нижнего регистра a-f)
Шестнадцатеричное представление (символы верхнего регистра A-F)
Пример 9. Открытие файла dat.txt для записи и запись в него данных из массива А. Данные из массива А читаются по столбцам, а запись ведется числами из 6 цифр с фиксированной запятой в 5 столбцов с горизонтальной табуляцией.
fprintf(fid, ‘%6.4f % б.4f % 6.4f % 6.4f % б.4f ‘,A);
Если команда fprintf используется без идентификатора файла (вместо него -цифра 1), то вывод идет на дисплей.