Добавил:
ФКН Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Семестр 2 / Алгоритмизация Практика 7 язык С

.pdf
Скачиваний:
87
Добавлен:
12.04.2020
Размер:
222.66 Кб
Скачать

Алгоритмизация и программирование – семестр 2

Практическое занятие № 7 «Текстовый файл»

Задания (2 балла):

1.(0,4 балла) Создать текстовый файл в блокноте; записать в него слово, например, WORD; сохранить. Написать программу, которая прочитает это слово, а затем допишет это же слово в конец того, что уже есть в файле. Закрыть программу. Открыть файл в блокноте и проверить правильность записи. Должно получиться:

WORDWORD

Снова выполнить программу. Посмотреть файл в блокноте.

2.(0,6 балла) Создать текстовый файл в программе, здесь же записать в него предложение (слова через пробелы), например:

may the Force be with you

Открыть файл в блокноте (программу при этом не закрывать), проверить правильность записи и закрыть блокнот. Из программы прочитать первое слово. Дописать это слово после предложения через пробел. Должно получиться:

may the Force be with you may

Снова посмотреть файл в блокноте. Закрыть блокнот. Закрыть программу.

3.(1 балл) Написать программу, которая считывает текст из файла (несколько предложений) и выводит его на экран. После каждого предложения печатается

количество символов в нем.

Бонусное задание (+1 балл): создать текстовый файл, найти самое длинное слово во всем тексте и определить частоту его использования (сколько раз оно встретилось).

Печатаем текст, это слово и частоту его использования в тексте.

Немного теории

Cтруктура FILE

Сначала объявляется указатель на структуру fp (дескриптор файла):

FILE *fp;

Доступ к файлу.

Необходимо связать указатель и файл. Функция fopen() принимает два параметра:

if ((fp = fopen("1.txt","w")) == NULL)

Первый - это имя файла, второй - режим работы с файлом, в котором он будет открыт. В данном режиме "w", если файл не существует, то он создается для записи, а если файл уже существует, то его содержимое полностью перезаписывается.

 

Режимы работы с файлом.

r

Только чтение

w

Только запись. Если файл существовал, то он переписывается.

a

Добавление: открытие файла для записи в конец, или создание файла.

r+

Открывает файл для обновления (чтение и запись).

w+ Открывает файл для обновления (чтение и запись), переписывая файл, если он существует. a+ Открывает файл для записи в конец файла или для чтения.

Практическоезанятие№7

Страница1

Алгоритмизация и программирование – семестр 2

Ошибка открытия файла.

Если вызов функции fopen() прошёл неудачно, то она возвратит NULL.

Оператор записываетданные в файл.

fprintf(fp,"%d %s\n", bal, name);

Принцип действия тот же, как и у оператора printf(), только в начале добавляется указатель на файл, в который будет производится запись данных.

Закрытие файла.

Данные записаны в файл. Он не используется. Нужно закрыть его, освобождая ресурсы.

fclose(fp);

Пример.

Работа с файлами -копирование содержимого изодного файла в другой:

#include <stdio.h> #include<Windows.h>

int main(void) { SetConsoleOutputCP(1251); SetConsoleCP(1251);

char filename1[] = "1.txt"; char filename2[] = "2.txt"; char cc[256];

FILE *f1, *f2;

if((f1= fopen(filename1, "r"))==NULL)

{

perror("Error occured while opening file"); return 1;

}

if((f2= fopen(filename2, "w"))==NULL)

{

perror("Error occured while opening file"); return 1;

}

// пока не дойдем до конца, считываем по 256 байт while((fgets(cc, 256, f1))!=NULL)

{

// записываем строку fputs(cc, f2); printf("%s", cc);

}

fclose(f1);

fclose(f2); return 0;

}

Практическоезанятие№7

Страница2