Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Высокоуровневый консольный ввод/вывод
Высокоуровневые функции ввода/вывода предоставляют простой способ чтения или записи потока символов консоли. Высокоуровневая операция чтения получает символы из входного буфера консоли и сохраняет их в указанном буфере. Высокоуровневая операция вывода извлекает символы из указанного буфера и записывает их в дисплейный буфер в указанную курсором позицию и перемещает его (курсор) после вывода каждого символа. Высокоуровневые функции ввода/вывода предоставляют Вам возможность выбора между функциями ReadFile() и WriteFile() и функциями ReadConsole() и WriteConsole(). Они идентичны за исключением двух важных отличий. Консольные функции поддерживают использование набора символов Unicode или ANSI; файловые функции не поддерживают Unicode. Кроме того, файловые функции можно использовать для получения доступа к файлам, каналам и последовательным устройствам коммуникации; консольные функции могут работать только с дескрипторами консоли. Это отличие важно, если приложение полагается на стандартные дескрипторы, которые могут быть перенаправлены. При использовании одного из наборов высокоуровневых функций приложение может управлять цветовыми атрибутами символов, записываемыми в буфер вывода. Приложение может также использовать консольные режимы для управления следующими свойствами: · отображением вводимых символов в дисплейном буфере (echoing of keyboard input); · вод строк, при котором операция ввода не завершается до тех пор, пока не будет нажата клавиша Enter; · автоматическая обработка клавиатурного ввода для обработки таких клавишных команд, как Enter, ctrl+c и других; · автоматическая обработка вывода для обработки переноса строк, возврата каретки, пробелов и др. Высокоуровневые режимы консоли Нижеследующие режимы консольного ввода доступны для консольного буфера ввода при создании консоли: · режим ввода строк; · режим обработки ввода (processed input mode); · режим эха ввода.
Оба следующих режима консольного вывода доступны для дисплейного буфера при его создании: · режим обработки вывода (processed output mode); · перенос в режиме EOL.
Все три режима ввода, вместе с режимом обработки вывода, спректированы для совместной работы. Лучше всего разрешить или отменить все эти режимы как группу. Когда все они разрешены, приложение работает в так называемом «cooked mode» (режим с автоматическим эхо-отображением вводимых данных на дисплее). Когда все они запрещены, приложение находится в "raw mode" (сырой режим), когда вся обработка ввода должна обрабатываться самим приложением. С помощью функции GetConsoleMode() приложение может определить текущий режим ввода или вывода. Вы можете разрешить или запретить любые из этих режимов с помощью задания соответствующих значений параметров функции SetConsoleMode(). Заметьте, что установка режима вывода для одного дисплейного буфера не оказывает влияния на другие дисплейные буферы. Таблица Режимы ввода и вывода
|