- •Лабораторная работа №4
- •Цикл for
- •Цикл while, суммирование рядов
- •4.2.2 Операторы ветвления
- •Условный оператор if
- •Организация ветвления
- •4.2.3 Приоритет операций
- •4.2.4 Текстовые файлы
- •Открытие файла, считывание данных и закрытие файла
- •Запись в текстовый файл
- •Запись строк
- •Форматный вывод
- •Считывание информации из текстового файла
- •3.3. Порядок выполнения работы
- •3.4 Контрольные вопросы
Запись в текстовый файл
Символы текстового файла образуют строки со словами, предложениями или числами. Запись текстовых строк достаточно проста, а вот для занесения в текстовый файл чисел приходится прибегать к специальным форматам. Вывод информации в текстовый файл производится при помощи функции fprintf.
Запись строк
Добавление строки в текстовый файл осуществляется при помощи fprint, вызванной с двумя входными аргументами, — идентификатором файла и строкой с текстом, например команда
fprintf(F, 'Строка добавлена командой fprintf. ')
записывает соответствующую строку в файл с идентификатором f, присвоенным ему при открытии. Последующая команда fprintf выводит заданную строку сразу за предыдущей, а не на новой строке:
fprintf(F, 'Еще строка. ')
Для вывода текста с новой строки следует добавить символ перевода строки \n в начало новой строки после апострофа:
fprintf(F, '\n Этот текст с новой строки.')
В результате выполнения трех вышеперечисленных команд содержимое текстового файла станет следующим:
Строка добавлена командой fprintf. Еще строка.
Этот текст с новой строки.
Символ перевода строки \n можно разместить в конце строки, после которой текст должен начинаться с новой строки, например последовательность команд
fprintf(F, 'Строка добавлена командой fprintf. ')
fprintf(F, 'Еще строка.\n')
fprintf(F, 'Этот текст с новой строки.')
приводит к аналогичному результату.
Вторым аргументом fprintf может быть не только строка, заключенная в апострофы, но и строковая переменная:
str = 'Этот текст добавляется в файл.'
fprintf(F, str)
Форматный вывод
Схема использования fprintf при работе с числовыми переменными такова:
fprintf (идентификатор, 'формат', список переменных)
Здесь первый аргумент, как и в случае вывода строк, является идентификатором файла, второй — строка со специальными символами, которые определяют вид записи значений переменных из списка, заданного третьим аргументом. В списке может быть одна или несколько переменных, в том числе и массивов.
Замечание
Идентификатор файла может быть опущен, в этом случае производится вывод в командное окно.
Разберем применение форматного вывода на простом примере. Требуется записать значения переменных х = pi/4 и у = sin(x) в файл в формате с плавающей точкой, оставляя четыре цифры после десятичной точки для х и шесть цифр — для у.
Файл-программа, демонстрирующая форматный вывод в файл:
[F, mes] = f open ( 'twonum.txt ', 'w');
x = pi/4;
у = sin (x) ;
fprintf (F, '%7.4f%11.8f ', x, y) ;
f close (F) ;
Содержимое файла twonum.txt составляют два числа — значения переменных х и у с требуемым числом цифр. Обратите внимание на второй аргумент команды fprintf. Последовательность %7.4f задает формат вывода переменной х, которая расположена на первом месте в списке вывода. Знак процента указывает на начало формата, цифра 7 обозначает, что всего под значение переменной х отводится семь позиций, цифра 4 после разделителя-точки обеспечивает точность отображения результата — четыре цифры после десятичной точки. Спецификатор f указывает на то, что следует вывести число в формате с плавающей точкой. Аналогичным образом работает формат %n.8f для вывода у. Соответствие форматов и получаемого результата приведено на схеме, изображенной на рис. 1, каждая позиция подчеркнута.
Рис.1. Схема соответствия форматов вывода и результата
При использовании форматного вывода следует учесть, что число форматов, начинающихся со знака процента, должно равняться количеству элементов в списке вывода. Форматы можно разделять пробелами, которые запишутся в текстовый файл между соответствующими значениями. Более того, в строке форматов допустим текст.
fprintf (F, 'х = %7.4f у = %11.8f, x, у) ;
Если теперь выполнить файл-программу, то получим:
х = -0.7854 у = -0.70710678
Завершение строки с форматами символом \n приводит к последующему выводу данных с новой строки. Кроме f, допустимы и другие спецификаторы форматов, в частности, спецификатор e означает вывод в экспоненциальной форме.