|
Вопрос # 6 261/ вопрос решён / |
|
Здравствуйте, эксперты!
Подскажите, как в системе Windows, осуществить ввод-вывод через консоль? Понимаю, что нужно использовать WinApi, но справочники довольно толстые и найти там что-то довольно трудно, поэтому и обращаюсь к вам.
Если не затруднит, опишите поподробнее не только используемые функции, но и типы данных, которые они принимают. Также, если есть какие-либо нюансы, тоже буду рад знать.
 |
Вопрос задал: Gooddy (статус: 3-ий класс)
Вопрос отправлен: 13 сентября 2012, 18:20
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 14 сентября 2012, 05:02; участников в обсуждении: 1.
|
Gooddy (статус: 3-ий класс), 14 сентября 2012, 05:02 [#1]:
Пока ждал ответа, всё таки перерыл справочники, нашёл функции
WriteConsole и ReadConsole.
Для их использования нужно получить хенлдеры ввода и вывода в консоль с помощью GetStdHandle.
Что интересно функция ReadConsole требует заранее инициализированный буфер, я выбрался из этого так:
1. Выделил большой участок памяти.
2. Вызвал функцию ReadConsole.
3. Выделил новый участок памяти размером в необходимое количество символов + 1 для завершающего 0.
4. Переместил полученные данные в новый участок памяти.
5. Освободил первый "временный" участок.
6. Вернул указатель на строку.
Кто вызывал пусть побеспокоится и освободит память по окончанию работы.
Чисти код! Чисти код! Чисти код!
|
14 сентября 2012, 05:02: Статус вопроса изменён на решённый (изменил автор вопроса — Gooddy)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|