Читайте также:
|
|
Работа с большими объемами данных, содержащихся в массивах структур, значительно облегчается при использовании текстовых файлов для хранения и считывания информации. Запись информации из массива структур в текстовый файл требует применения форматного вывода функцией fprintf.
Список вывода fprintf состоит из полей, значения которых необходимо записать, в текстовый файл, а форматы соответствуют типам данных, хранящимся в полях.
Пример 3. Файл-функция writegroup, которая реализует построчный вывод значений всех полей структур массива с информацией об успеваемости группы студентов.
Имя текстового файла и массив структур являются входными аргументами writegroup. Содержимое файла должно иметь организацию, схожую с табл. 1 лаб. раб. №2.
Установите фиксированное число отводимых позиций под вывод строк и чисел и выравнивание в области вывода по левому краю при помощи флага. Для вывода значения поля структуры, содержащего строку, примените спецификатор формата s. Например, формат '%-10s' означает выравнивание строки по левому краю в поле вывода из 10 позиций.
function writegroup(filename, GROUP)
% Файл-функция для записи таблицы с успеваемостью группы
% студентов в текстовый файл.
% Использование writegroup(filename, GROUP)
% filename — имя файла
% group — массив структур с полями
% Family (строка), Name (строка), Year (число),
% Marks (вектор-строка с шестью отметками)
% Нахождение числа студентов в группе
N = length(GROUP);
% Открытие файла с именем filename для записи
F = fopen(filename, 'w');
% Запись шапки таблицы с выравниванием по левому краю каждой строки
fprintf(F, '%-14s %-10s %-4s %-6s\n',...
'Фамилия', 'Имя', 'Год', 'Оценки');
% Запись в файл содержимого полей каждой структуры в строку
for s = 1:N
fprintf(F, '%-14s %-10s %4.0f %2.0f %2.0f %2.0f %2.0f %2.0f %2.0f\n',...
GROUP(s).Family, GROUP(s).Name, GROUP(s).Year, GROUP(s).Marks);
end
% Закрытие файла
fclose(F);
Перед вызовом функции не забудьте заполнить массив структур GR201.
Вызов функции
writegroup('group.txt',GR201)
Задание 7. Заполните массив структур GR201. Вызовите функцию writegroup('group.txt',GR201). Покажите содержимое файла group.txt.
Добавьте в структуру GR201 новые поля: место рождения (строковая переменная) и средняя оценка (вещественная переменная). Заполните эти поля для каждого студента.
Исправьте функцию writegroup таким образом, чтобы в файл были также записаны место рождения и средняя оценка студента.
Вызовите исправленную функцию writegroup('newgroup.txt',GR201). Покажите содержимое файла newgroup.txt.
Дата добавления: 2015-07-15; просмотров: 130 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Пример 2. | | | Считывание информации из текстового файла |