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

Двоичный (бинарный) режим обмена с файлами

Читайте также:
  1. I. Расчет режимов резания на фрезерование поверхности шатуна и его крышки.
  2. III. Особенности режима рабочего времени локомотивных и кондукторских бригад
  3. IV. Работа в режиме быстрой маски
  4. V. Особенности режима рабочего времени работников пассажирских поездов, рефрижераторных секций и автономных рефрижераторных вагонов со служебными отделениями
  5. А) Определить наличие на предприятии опасных веществ, опасных режимов работы оборудования и объектов.
  6. А. ПАТОФИЗИОЛОГИЯ ВОДНО-ЭЛЕКТРОЛИТНОГО ОБМЕНА
  7. Аварийные режимы
  8. аварийных электроэнергетических режимов
  9. АВТОРИТАРНЫЕ РЕЖИМЫ: ПРИЧИНЫ НЕСТАБИЛЬНОСТИ
  10. Агонія комуністичного режиму в Польщі.
  11. Анализ и оценка налоговой нагрузки при применении специальных налоговых режимов
  12. Анализ линейных электрических цепей в установившихся режимах

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

 

с = getc (fp);

putc (c, fp);

 

где fp - указатель на поток;

с - переменная типа int для приема очередного символа из файла или для записи ее значения в файл. Прототипы функции:

 

int getc (FILE *stream);

int putc (int c, FILE * stream);

 

В качестве примера использования функций getc() и putc() рассмотрим программы ввода данных в файл с клавиатуры и программу вывода их на экран дисплея из файла.

Программа ввода читает символы с клавиатуры и записывает их в файл. Пусть признаком завершения ввода служит поступивший от клавиатуры символ '#'. Имя файла запрашивается у пользователя. Если при вводе последовательности символов была нажата клавиша <Enter>, служащая разделителем строк при вводе с клавиатуры, то в файл записываются управляющие коды "Возврат каретки" (CR- значение 13) и "Перевод строки" (LF - значение 10). Код CR в дальнейшем при выводе вызывает перевод маркера (курсора) в начало строки экрана дисплея. Код LF служит для перевода маркера на новую строку дисплея. Значения этих кодов в тексте программы обозначены соответственно идентификаторами CR и LF, т.е. CR и LF - именованные константы. Запись управляющих кодов CR и LF в файл позволяет при последующем выводе файла на экран отделить строки друг от друга.

В приводимых ниже программах используются уже рассмотренные выше функции getchar(), putchar() для посимвольного обмена со стандартными потоками stdin, stdout.

 

 

Следующая программа читает поток символов из ранее созданного файла и выводит его на экран дисплея:

 

 

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

 

 

В этой программе после вывода очередного кадра из МАХ строк для перехода к следующему кадру необходимо нажать любую клавишу.

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

Необходимые примеры и разъяснения приводятся в главе 8 при описании программы обслуживания базы данных о сотрудниках предприятия. Функции save() и load() из этого примера (см. §8.2) позволяют сохранить во внешней памяти и загрузить из внешней памяти базу данных о сотрудниках предприятия.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.)