Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Прошлый вопрос посмотреть

Читайте также:
  1. I. Примерный перечень вопросов для подготовки к экзамену
  2. IV. Основные виды вопросов и правила их постановки и формулирования.
  3. V. перечень вопросов к экзамену
  4. VI. ПРИМЕРНЫЙ ПЕРЕЧЕНЬ ВОПРОСОВ К ЭКЗАМЕНУ
  5. VI. Прочитайте текст и переведите его письменно на русский язык, используя словарь. Поставьте к тексту 7 вопросов разного типа.
  6. А почему? - я вопросительно нее посмотрела.
  7. А) вести переговоры с участниками процесса по вопросам, связанным с производством экспертизы, без ведома органа, ведущего уголовный процесс
  8. А). Анкетирование. Письменный опрос, т.е. респондент самостоятельно письменно отвечает на предложенный ему список вопросов.
  9. Аграрный вопрос в программах и тактике политических партий
  10. Аграрный вопрос в России в начале XX в.

29. Функции ввода - вывода языка С для обработки текстовых файлов: синтаксис, семантика. Примеры посимвольной обработки текстовых файлов

Функции ввода - вывода для обработки текстовых файлов:

int fscanf (FILE *stream, форматная строка, список аргументов);

int fprintf (FILE *stream, форматная строка, список аргументов);

int fgetс(FILE *stream)

int fputс(char с, FILE *stream)

char *fgets(char *s, int size, FILE *stream)

int fputs(char *s, FILE *stream)

Рассмотрим основные варианты обработки текстовых файлов.

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

Функции fprintf() и fscanf(), fgetc() и fputc() используют для посимвольной обработки, а функции fgets() и fputs() для построчной обработки текстовых файлов.

Функции ввода-вывода fprintf() и fscanf() работают аналогчно функциям printf() и scanf(), но имеют дополнительный аргумент, являющийся указателем на файловый поток.

Функция fgetc () считывает символ из файла, открытого функцией fopen() в режиме чтения. Параметр stream является указателем на поток, возвращенным функцией fopen(). Функция fgetc() возвращает целочисленную переменную, младший байт которой содержит введенный символ. Если возникла ошибка, старший байт этой переменной равен нулю. Если при чтении обнаруживается конец файла, функция fgetc() возвращает константу EOF.

Функция fputc() записывает символ в файл, открытый с помощью функции fopen(). Параметр stream представляет собой указатель файла, возвращенный функцией fopen(), а аргумент является символом, подлежащим выводу. Указатель stream сообщает функции putc(), в какой именно файл следует произвести запись. Несмотря на то, что параметр имеет тип int, в файл записывается лишь младший байт. Если функция fputc() выполнена успешно, она возвращает символ, записанный ею в файл. В противном случае она возвращает константу EOF.

 

30. Функции ввода - вывода языка С для обработки бинарных файлов: синтаксис, семантика, примеры использования

Способ хранения данных в бинарных (двоичных) файлах имеет два важных преимущества:

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

-Имеет место экономия памяти и дискового пространства, поскольку двоичная кодировка более компактна и нет необходимости в использовании управляющих символов.

Принципиально обработка двоичных файлов не очень сильно отличается от обработки текстовых файлов. В любом случае, прежде чем работать с файлом, следует открыть файл, указав режим доступа. Открыть файл для двоичной обработки можно посредством вызова функции fopen(), но ко всем режимам доступа добавляют строчную латинскую букву b. Режимы доступа одинаковы для текстовых и двоичных файлов. Если после вызова функции fopen() указатель на файловый поток f не равен нулю, его можно использовать в последующих обращениях к функциям работы с двоичными файлами, таким, как fwrite() и fread(). Закрывают двоичные файлы, как и текстовые, функцией fclose().

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

-ptr – указатель на исходные данные, читаемые из файла (записываемые в файл);

-size – размер в байтах одного элемента данных;

Замечание. size_t – специальный идентификатор типа, который введен для обозначения типа результата, вычисляемого операцией sizeof. На самом деле идентификатор size_t является синонимом unsigned int.

-n – число записываемых в файл элементов данных; stream – указатель на файловый поток.

Существует два способа доступа к элементам двоичных файлов: последовательный и произвольный.

 

 

31. Произвольный доступ к элементам двоичных файлов в языке С: синтаксис используемых функций, примеры

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

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

Для организации произвольного доступа к элементам файла используют функцию fseek(), прототип которой описан в заголовочном файле stdio.h.

Функция fseek() перемещает внутренний указатель файлового потока, изменяя таким образом место в файле, с которого начинается следующая операция чтения или записи. В случае успешного завершения функция возвращает 0, в случае ошибки – ненулевое значение.

Параметры функции:

a. FILE *stream – указатель на открытый файловый поток;

b. long offset – число байтов, на которое нужно переместить файловый указатель в направлении, указанном параметром whence. Для перемещения файлового указателя в обратном направлении (в сторону начала файла) следует устанавливать offset равным отрицательному значению;

c. int whence – указывает положение точки отсчета файлового указателя, от которой будет происходить его перемещение Значения аргумента whence представлены в таблице.

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

 

 

32. Как организуется работа с файлами и потоками в стиле языка С++ (на примере текстовых




Дата добавления: 2015-01-30; просмотров: 113 | Поможем написать вашу работу | Нарушение авторских прав

1 | 2 | 3 | 4 | 5 | <== 6 ==> | 7 | 8 | 9 | 10 |


lektsii.net - Лекции.Нет - 2014-2025 год. (2.19 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав