|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.03.2012, 14:41 | #1 |
Пользователь
Регистрация: 10.03.2012
Сообщений: 16
|
функция для очисти определенных элементов массива.
Здравствуйте! такая задача. я создал консольное приложение, в котором на экран выводится массив из 1920 элементов. в этом массиве через каждый промежуток времени изменяются 2 элемента. и каждый раз при изменении элементов приходится очищать экран, изменять в массиве эти элементы и вновь выводить массив. из-за этого происходит мерцание и торможение программы. для очистки экрана я использую Console::Clear(); а есть ли такая функция с помощью которой можно было бы изменять в уже выведеном массиве эти два элемента, не выводя массив заново?
|
11.03.2012, 14:54 | #2 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
WriteConsoleOutputCharacter
|
31.03.2012, 11:38 | #3 |
Пользователь
Регистрация: 10.03.2012
Сообщений: 16
|
А есть ли похожая функция в чистом c++. без win api ? или может её можно как нибудь создать?
|
31.03.2012, 12:29 | #4 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
|
31.03.2012, 16:08 | #5 |
Пользователь
Регистрация: 10.03.2012
Сообщений: 16
|
Вопрос был такой: как решить данную задачу не используя функций winapi? желательно отвечать по существу: пример кода или способ решения.
|
31.03.2012, 16:17 | #6 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
похоже на С++ CLI. там есть функции установки координат вывода. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
01.04.2012, 06:37 | #7 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
При работе в операционной системе Windows, любые библиотеки, работающие с вводом/выводом в конечном счете дергают winapi. Ты можешь быть удивлен, но даже всеми любимые printf и std::cout в конечном счете дергают winapi. То, что ты видишь на дисплее - черненькое окошко, это на самом деле самое обычное окошко Windows, создаваемое средствами winapi. Сама "консоль" - это программа, запрятанная глубоко в недрах операционной системы. Любые взаимодействия с нею - только через winapi. Других способов читать/писать попросту не существует. |
|
01.04.2012, 08:27 | #8 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
_Bers, ага, а еще Hello, world нельзя написать без использования ассемблера. Нет, даже машинных кодов. Все операции, производимые на компьютере, осуществляются через обращение к процессору с помощью соответствующих низкоуровневых команд. Иными словами, на чистом C++ вообще ничего нельзя сделать. Все операции производятся только с помощью команд процессора.
DAVID973, чисто случайно без использования WinAPI или нестандартных библиотек действительно не существует рациональных способов решения данной проблемы. Существует нерациональный - стирать по одному символу, выводя символ '\b', но его стоило бы применять, будь в массиве не больше, скажем, десяти элементов. Иначе - будет почти та же ерунда - очень часто придется стирать сотни и тысячи символов, начиная с конца.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
01.04.2012, 11:13 | #9 | ||
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Только какое отношение это имеет к сабжу? Цитата:
всякие там std::cout так же дергают winapi. Все эти стандартные плюшки перестанут работать, если запретить winapi. Более того: вообще, весь файловый ввод/вывод будет полностью парализован, если запретить winapi. Единственный, нерациональный способ обойтись без winapi - это написать собственные реализации функций ReadFile/WriteFile, и подменить ими оригинальные. Мало того, что не рационально, так ещё идет в разрез с лицензией OS WINDOWS. |
||
01.04.2012, 11:46 | #10 | |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
_Bers, все, дошло. Сегодня же первое апреля, потому вы так старательно
Цитата:
Каким образом ты будешь стирать символы, если тебе не доступны команды процессора? Всякие там std::cout и функции WinAPI используют команды процессора и ассемблер. Все эти стандартные плюшки перестанут работать, если отключить процессор. Более того: вся работа компьютера будет полностью парализована, если запретить использовать процессор. Единственный, нерациональный способ обойтись без команд процессора - создать свой процессор с собственной реализацией процессорных команд и заменить им оригинальный. Мало того, что нерационально, так еще идет в разрез с гарантией на компьютер и лицензией IBM.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
событие для массива созданных элементов | areyoudead | Общие вопросы Delphi | 52 | 14.10.2014 19:25 |
Счетчик элементов массива (для модели толпы) | mrandrew1990 | Общие вопросы Delphi | 6 | 05.03.2012 18:58 |
Не придумать условие для элементов массива | ShadowNecros | Помощь студентам | 7 | 14.04.2011 22:12 |