- •Глава 7. Типы определяемые пользователем Структуры
- •Задания
- •Формирование структуры
- •7.2 Массивы структур
- •Глава 8 Файлы.
- •Примеры составления программ на языке с.
- •Задания.
- •Глава 9. Численные методы
- •9.1 Приближенные методы решения уравнений.
- •Метод половинного деления
- •Метод хорд.
- •Метод Ньютона.
- •Метод простой итерации.
- •Задания
- •9.2 Решение систем уравнений
- •9.3 Вычисление интегралов
- •9.4 Вычисление сумм числовых рядов Вычисление конечных сумм
- •Список литературы
- •456776, Г. Снежинск, ул. Комсомольская, 8
Глава 8 Файлы.
Файл – это именованный объект, хранящий данные (программа или любая другая информация) на каком-либо носителе. Над файлом можно выполнить функции доступа, которые позволяют проверять, извлекать или изменять информацию, содержащуюся в нем. Перед работой с файлом его необходимо обязательно открыть, а после работы – закрыть.
Перед работой с файлом его необходимо открыть. В языке С для открытия файла обычно используется функция fopen(), которая при успешном открытии возвращает указатель на структуру типа FILE, называемый указателем на файл. Эта структура связана с физическим файлом и содержит всю необходимую информацию для работы с ним (указатель на текущую позицию в файле, тип доступа и др.). Возвращаемое функцией значение нужно сохранить и использовать для ссылки на открытый файл. Если произошла ошибка при открытии файла, то возвращается NULL. После работы с файлом он должен быть закрыт функцией fclose().
Примеры составления программ на языке с.
Пример 8.1
Сформировать файл последовательности n - чисел. Определить
количество положительных элементов, содержащихся в
сформированном файле.
/**************************************************/
/* Файлы */
/* Сформировать файл последовательности */
/* n - чисел. Определить количество */
/* положительных элементов, содержащихся */
/* в сформированном файле. */
/**************************************************/
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
clrscr();
FILE *f1;
int a,i,n,kol=0;
// Создание файла f1 для записи
f1=fopen("d:\\Nataly\\f1.txt","w+");
if (f1==NULL) // если произошла ошибка
{ printf("Файл невозможно открыть.");
exit(1); // выход из программы
}
printf("\n\t Введите количество элементов:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\t Введите %d-й элемент:",i);
scanf("%d",&a); // ввод элемента
fprintf(f1," %d ",a); //запись элемента в файл
}
// Закрытие файла
fclose(f1);
// Чтение и печать созданого файла
f1=fopen("d:\\Nataly\\f1.txt","r+");
printf("\n \t Вывод файла f1: \n\t");
for(i=0;i<n;i++)
{
fscanf(f1,"%d",&a); // чтение элемента из файла
printf(" %d ",a); // вывод элемента на экран
if (a>0) kol++; // подсчет положит.элементов
}
fclose(f1); // Закрытие файла
printf("\n Кол-во положит.элементов файла =%d",kol);
getch();
}
Результат работы программы.
Введите количество элементов:10
Введите 0-й элемент:5
Введите 1-й элемент:-8
Введите 2-й элемент:-5
Введите 3-й элемент:7
Введите 4-й элемент:12
Введите 5-й элемент:6
Введите 6-й элемент:-45
Введите 7-й элемент:90
Введите 8-й элемент:33
Введите 9-й элемент:-77
Вывод файла f1:
5 -8 -5 7 12 6 -45 90 33 -77
Кол-во положит.элементов файла =6
Пример 8.2
Ввести строку символов в файл F, а затем скопировать его содержимое в файл G и добавить в конец файла G фамилию и имя.
/****************************************************/
/* Текстовые файлы */
/* Ввести строку символов в файл F, а затем */
/* скопировать его содержимое в файл G, */
/* добавив в конец файла фамилию и имя */
/****************************************************/
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include <stdlib.h>
#define size 50
void main()
{
FILE *F,*G;
char str[size],str_dob[size];
clrscr();
// Создание файла F
F=fopen("d:\\Nataly\\F.txt","w+");
if (F==NULL)
{
printf("Файл невозможно открыть.");
exit(1);
}
printf(" Введите строку символов:\n");
gets(str);
// запись строки в файл F
fputs(str,F);
fclose(F); // закрываем файл F
// Чтение файла F и запись в файл G
// открытие файлов
F=fopen("d:\\Nataly\\F.txt","r+"); // для чтения
G=fopen("d:\\Nataly\\G.txt","w+"); // для записи
if (G==NULL)
{
printf("Файл невозможно открыть.");
exit(1);
}
printf("\n Вывод файла F: ");
// чтение строки из файла
fgets(str,strlen(str)+1,F);
puts(str); // вывод на экран
// запись в файл G
fputs(str,G);
// Закрытие файлов F и G
fclose(F);
fclose(G);
// Добавление в конец файла
// фамилии и имени
G=fopen("d:\\Nataly\\G.txt","a+");
printf("\n Добавление в конец файла G: ");
printf("\n\t Введите фамилию и имя:");
gets(str_dob); // ввод с клавиатуры
fputs(str_dob,G); // запись в файл
fclose(G); // закрытие файла G
// Открытие и чтение файла G
G=fopen("d:\\Nataly\\G.txt","r+");
// чтение строки из файла
fgets(str,strlen(str)+strlen(str_dob)+1,G);
printf("\n Файл G:\n");
puts(str); // вывод на экран
// Закрытие файла G
fclose(G);
getch();
}
Результат работы программы.
Введите строку символов:
Белая береза под моим окном...
Вывод файла F: Белая береза под моим окном...
Добавление в конец файла G:
Введите фамилию и имя: Пушкин А.С.
Файл G:
Белая береза под моим окном... Пушкин А.С.