Алгоритмизация и программирование – семестр 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 |