50194

Работа с текстовыми файлами

Лабораторная работа

Информатика, кибернетика и программирование

Цель: Приобрести практические навыки в проектировании структуры файла а также закрепить навыки по вводу данных в текстовый файл и их обработке. Этим звеном является файловая структура. Ввод и вывод информации в файл обеспечивается с помощью так называемого указателя на файл который является указателем на файловую структуру в памяти.

Русский

2014-01-17

55.5 KB

3 чел.

Лабораторная Работа № 18

Тема: Работа с текстовыми файлами.

Цель: Приобрести практические навыки в проектировании структуры файла, а также закрепить навыки по вводу данных в текстовый файл и их обработке.

Теоретические сведения:

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

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

Ввод и вывод информации в файл обеспечивается с помощью так называемого указателя на файл, который является указателем на файловую структуру в памяти. Указатель на файл определяется следующим способом:

FILE *file_pointer;

Для использования файловой структуры и функций по операциям с файлами необходимо подключить stdio.h.

Связь между программой и файлом устанавливается при помощи функции fopen() следующим образом:

pointer=fopen(“FILENAME”,”mode”);

где  pointer – указатель на файл;

      fopen – имя функции;

      FILENAME – имя файла на диске;

      mode – режим доступа к файлу.

В файле stdio.h определены следующие функции (смотри таблицу 1):

Таблица 1.

Функции

Действие функции

fopen()

fclose()

putc() или fputc()

getc() или fgetc()

fputs()

fgets()

fseek()

fprintf()

fscanf()

feof()

ferror()

rewind()

remow()

Открыть файл

Закрыть файл

Записать символ в поток

Прочитать символ из потока

Построчная запись в поток

Построчное чтение данных из потока

Изменить указатель позиции файла на указанное место

Форматная запись в файл

Форматное чтение из файла

Возвращает значение «истинно», если достигнут конец файла

Возвращает значение «ложно», если обнаружена ошибка

Устанавливает указатель позиции файла на начало

Уничтожает файл

Возможные режимы открытия файлов перечислены ниже (смотри таблицу 2):

Таблица 2.

 

Режим

Действие

“r”

“w”

“a”

“rt”

“wt”

“at”

“r+t”

“w+t”

“a+t”

Открыть для чтения

Создать для записи

Открыть для добавления в существующий файл

Открыть текстовый файл для чтения

Создать текстовый файл для записи

Открыть текстовый файл для добавления

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

Создать текстовый файл для чтения и записи

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

Посимвольная передача данных является самой основной формой файловых операций, хотя и не принадлежит к числу широко распространенных на практике способов обращения с информацией.

Функции, работающие с символами и строками, предназначены только для чтения и записи текста. Причем, функции осуществляющие посимвольное чтение, будут вводить по одному символу, даже если изначально в файл была записана строка с помощью fputs(). Аналогично, функции, предназначенные для построчного чтения из файла, будут вводить данные целыми строками, даже если информация в файл была записана посимвольно.

Пример: Посимвольная запись  и чтение данных в файл и из файла.

#include<stdio.h>

void main()

{

FILE *fp;

char letter;

if((fp = fopen(“myfile”,”w”))==NULL)

    { puts(“Невозможно открыть файл”);

       exit();

     }

// Чтение символа с клавиатуры и запись в файл

do 

     {letter=getchar(); // ввод последовательности символов

      fputc(letter,fp); // символы записываются в файл

      }

while(letter !=’\r’);

fclose(fp);

// Чтение данных из файла и вывод их на экран

if((fp = fopen(“myfile”,”к”))==NULL)

    { puts(“Невозможно открыть файл”);

       exit();

     }

while((letter =fgetc(fp))!= EOF) //  посимвольное чтение из файла

     printf(“%c”,letter);

fclose(fp);

}

Задание:  Выполнить программу обработки символьных данных в соответствии с вариантом, указанном в таблице 3.

Вариант

Условия задачи

1

Проверить, имеются ли в заданном тексте баланс открывающих и закрывающих скобок.

2

Для встречающихся в заданном тексте пар рядом расположенных символов указать, сколько раз встречается каждое из таких двухбуквенных сочетаний.

3

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

4

В заданном предложении указать слово, в котором доля гласных (A, E,O,I) максимальна.

5

Для каждого слова заданного предложения указать долю согласных. Определить слово, в котором доля согласных максимальна.

6

Найти самое длинное симметричное слово заданного предложения, например АККА.

7

Для каждого символа заданного текста указать, сколько раз он встречается в тексте. Сообщение об одном символе должно печататься не более одного раза.

8

Отредактировать заданное предложение, заменяя многоточия точкой.

9

В заданном предложении найти самое короткое и самое длинное слово.

10

Из заданного текста выбрать и напечатать только те символы, которые встречаются в нем только один раз (в том порядке, в котором они встречаются в тексте).

11

В заданном тексте заменить последовательность символов X(I) на A(I) и подсчитать число произведенных замен.

12

В заданном тексте удалить символ «,» и подсчитать число удаленных символов.

13

Из текста выбрать числа и записать в массив N. Количество чисел не более 10.

14

Удалить из текста символы «пробел» и подсчитать длину сформированного текста.

15

В тексте предложения заменить символ «пробел» на символ «,». Конечные символы удалить, не заменяя на запятые. Определить длину предложения. Если в тексте встречается несколько символов «пробел» подряд, то вместо них поставить одну запятую.

Контрольные вопросы:

  1.  Что такое файловый буфер?
  2.  Чем отличается файл от массива?
  3.  Как используется файловая структура?
  4.  Как вы будете выводить числовые данные?
  5.  Как осуществляется чтение и запись файла?
  6.  Назовите режимы работы с файлами.
  7.  Для чего служит функция sizeof()?

Содержание отчета:

  1.  Краткие теоретические сведения.
  2.  Схемы алгоритмов.
  3.  Тексты составленных программ.
  4.  Протоколы к составленным программам.
  5.  Вывод о проделанной работе.


 

А также другие работы, которые могут Вас заинтересовать

81023. Французская социологическая школа в теории международных отношений 36.25 KB
  В основе полемологии комплексное изучение войн конфликтов и других форм коллективной агрессивности с привлечением методов демографии математики биологии и других точных и естественных наук.
81024. Геополитические теории международных отношений 36.52 KB
  Спайкман как представитель геополитической теории высказывает мнение что глобальная безопасность в мире может быть обеспечена контролем за материковой каймой т. Современные геополитические теории дополнены культурологическим материалом спор цивилизации хантингтона а также теорией золотого миллиарда.
81025. Основания глобализации. Этапы глобализации 38.97 KB
  Этапы глобализации. Первая фаза глобализации относятся к рубежу 1920 веков в результате научнотехнической революции роста экономики появления СМК и возможности свободного перемещения в пространстве. Предпосылки второй стадии глобализации складываются после второй мировой войны.
81026. Экономическая глобализация на современном этапе международных отношений 35.92 KB
  Экономическая глобализация началась в средние века завершается образованием глобальных сверкорпораций. Глобализация экономики с одной стороны создает условия доступа стран к передовым достижениям человечества обеспечивает экономию ресурсов стимулирует мировой прогресс а с другой – закрепляет периферийные модели экономики потерю сырьевых интеллектуальных и трудовых ресурсов странами не входящих в золотой миллиард разорение малого бизнеса и безальтернативную конкуренцию между сильным и слабым. Экономическая глобализация – процесс более...
81027. Политическая глобализация на современном этапе международных отношений 38.13 KB
  В тоже время политическая глобализация несет угрозу суверенитету любого государства. Политическая глобализация обеспечивается сетью транснациональных связей и отношений: деятельность международных организаций международных трибуналов экономических организаций МВФ Всемирный Банк. Тем не менее глобализация является объективным явлением современного мира которое воздействуя на мировое сообщество приводит его к новому состоянию.
81028. Культурная глобализация на современном этапе международных отношений 37.16 KB
  Как процесс многогранный и по всей видимости необратимый глобализация характеризуется такими явлениями которые обуславливают собой неоднозначное отношение к ним. Существует другая точка зрения согласно которой не смотря на то что люди во всем мире все более и более подвергаются воздействию иных культур через торговлю путешествия и СМИ глобализация рынков не приведет к снижению разнородности культур.
81029. Антиглобализм и альтерглобализм: особенности и сходства двух движений 39.62 KB
  Это многовекторное политическое движение направленное против процесса глобализации в его современных формах. Его основными чертами являются: признание объективного характера глобализации; отрицание безальтернативности существующей модели глобализации неолиберальноамериканоцентричной навязывания ее всему миру; разработка альтернативных моделей глобализации и альтернативного пути развития современной цивилизации; ведение борьбы с конструктивных позиций. Однако в последнее время чаще всего антиглобалисты отрицают только некоторые аспекты...
81030. Россия в процессах глобализации 37.65 KB
  Глобализация российским населением в большинстве случаев оценивается негативно. сокращение трудовых ресурсов странысокращение высокотехнологичных производств и расширение иностранного или филиального производстваПолитические перспективыПолитическая глобализация несет угрозу суверенитету любого государства. Политическая глобализация обеспечивается сетью транснациональных связей и отношений: деятельность международных организаций международных трибуналов экономических организацийБольшинство существующих международных организаций создающих...
81031. История создания и устав ООН. Структура ООН 41.01 KB
  Структура ООН Организация Объединённых Наций международная организация созданная для поддержания и укрепления международного мира и безопасности развития сотрудничества между государствами. История создания ООН во многом определяется именно этими факторами. Предшественником ООН была Лига Наций Вторая мировая война дала сильный толчок общественной и правительственной инициативе по организации безопасности и мира.