Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Запись данных массивов структур в текстовый файл



Работа с большими объемами данных, содержащихся в массивах структур, значительно облегчается при использовании текстовых файлов для хранения и считывания информации. Запись информации из массива структур в текстовый файл требует применения форматного вывода функцией 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.





Дата публикования: 2014-12-11; Прочитано: 404 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...