Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab11_4.doc
Скачиваний:
10
Добавлен:
15.03.2015
Размер:
173.57 Кб
Скачать
        1. Пример 2. Запись содержимого двух массивов в текстовый файл

          1. Постановка задачи

Имеются два массива, содержащие числа типа double. Записать содержимое этих массивов в текстовый файл. Вывод организовать в виде таблицы, снабженной заголовком. Таблица должна содержать три колонки. В первой колонке должен выводиться порядковый номер элемента, в двух других элементы массивов. В заголовке следует указать имена выводимых массивов.

          1. Решение

Оформим решение данной задачи в виде функции. Эта функция должна иметь шесть параметров. Первый из них должен служить для передачи в функцию файлового указателя на файл, в который будет выполняться вывод. Два параметра необходимы для передачи массивов, значения которых следует выводить в файл. Затем еще два параметра необходимы для передачи в функцию имен выводимых массивов. Наконец, последний параметр должен служить для передачи в функцию количества выводимых элементов массива.

#include<stdio.h>

void save_arrays(FILE* out, double* arr1, double* arr2,

char* name1, char* name2, int num)

{

int i;

fprinf(out, "%6s%15s%15s\n", "НОМЕР", name1, name2);

for(i = 0; i < n; i++)

{

fprinf(out, "%6d%15.2f%15.2f\n", i, arr1[i], arr2[i]);

}

}

        1. Пример 3. Чтение из таблицы, хранящейся в файле, двух числовых массивов

          1. Постановка задачи

В текстовом файле имеется таблица, в которой хранится содержимое двух массивов. Таблица содержит три колонки и снабжена заголовком, который находится в первой строке файла. В первой колонке представлен порядковый номер элемента, в двух других - элементы массивов.

          1. Решение

Оформим решение данной задачи в виде функции. Эта функция должна иметь три параметра. Первый из них должен служить для передачи в функцию файлового указателя на файл, из которого будет выполняться чтение. Два других параметра необходимы для передачи массивов, в которые будет выполняться чтение данных. Количество прочитанных элементов массивов функция должна вернуть в качестве возвращаемого значения. Для чтения файла будет использоваться функция fgets из стандартной библиотеки языка C. Основу алгоритма функции должен составлять итерационный цикл чтения файла. До входа в цикл необходимо прочитать заголовок таблицы, а в его теле последовательно читать строки таблицы. Строка, полученная в результате чтения заголовка таблицы, в программе не используется.

#include<stdio.h>

/* Чтение массивов */

int load_arrays(FILE* in, double* arr1, double* arr2)

{

int count = 0;

char buf[255];

/* Чтение заголовка таблицы */

fgets(buf, sizeof(buf), in);

while(fgets(buf, sizeof(buf), in) != NULL)

{

sscanf(buf, "%*d%lf%lf", arr1 + count, arr2 + count);

count++;

}

return count;

}

        1. Пример 4. Вывод содержимого текстового файла на экран дисплея с проверкой на наличие ошибок.

#include<stdio.h>

#include<stdlib.h>

void display_file(FILE* in)

{

char buf[255];

while(fgets(buf, sizeof(buf), in) != NULL)

{

fgets(buf, sizeof(buf), in);

}

if(ferror(in))

{

printf("Ошибка чтения файла\n");

exit(1);

}

}

Соседние файлы в предмете Программирование