Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C++ / Справочная информация / Ввод-вывод данных на консоль.doc
Скачиваний:
18
Добавлен:
13.05.2017
Размер:
139.78 Кб
Скачать
  1. Ввод-вывод данных

Выводом называется процедура переноса данных из памяти компьютера на внешние устройства.

При вводе данных напротив, информация извне вносится в память компьютера.

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

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

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

Консоль — это устройство для управления компьютерной системой, это может быть клавиатура, экран дисплея, принтер или любое другое устройство, связывающее пользователя с компьютером.

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

В отличие от переменной, файл (в частности, его имя) имеет смысл вне конкретной программы. Работа с файлами реализуется средствами операционных систем. Более подробно мы рассмотрим работу с файлами позднее.

Различают буферизованный и небуферизованный (прямой) ввод/вывод данных.

Небуферизованный ввод/вывод характерен тем, что символ немедленно доступен ожидающей программе. Примером могут служить функции ch=getch(), putch(ch) из библиотеки conio.

При буферизованном вводе/выводе символы сначала помещаются в специальную область памяти, называемую буфером. Здесь они накапливаются до тех пор, пока не нажата клавиша ENTER или полностью не заполнится буфер. Только после этого накопленный блок данных становится доступным программе. Большинство библиотечных функций языка С и С++ работают с буферизацией, например getchar(), putchar(ch).

Зачем нужны буферы? Одни устройства производят запись данных в буфер, а другие — чтение из него. Программа, выполнившая запись в буфер, может немедленно продолжать работу, не ожидая, пока данные будут обработаны внешним устройством. Это очень важно для эффективной работы компьютера, так как, внешние устройства работают значительно медленнее памяти компьютера. Таким образом, буферизация позволяет выполнять параллельно вывод и обработку данных.

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

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

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

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

Отметим одно интересное свойство функций ввода языка С. Когда данные вводятся с клавиатуры, они отображаются на экране монитора, при этом в программе не используются никакие функции вывода на экран, это «явление» называется эхопечать. Эхопечать используется в большинстве функций ввода, таких как getchar(), gets(), scanf().

Мы рассмотрим наиболее простые и популярные из них, полный перечень библиотечных функций можно найти в справочниках по библиотечным функциям языка С или С++. Таких справочников очень много, как в электронном виде, так и в печатном виде, например книги известного автора, признанного специалиста по С и С++ Герберта Шилдта:

  • Герберт Шилдт. Справочник программиста С/С++

  • Герберт Шилдт. Полный справочник по С++

Соседние файлы в папке Справочная информация