1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Мгновенный вывод символа в позицию консоли

Тема в разделе "С и С++", создана пользователем mspSUSE, 29 мар 2015.

  1. mspSUSE

    mspSUSE New Member

    Репутация:
    0
    Регистрация:
    20 июл 2009
    Сообщения:
    3
    Симпатии:
    0
    Посмотрите, пожалуйста, код,
    он компилируется на TDM GCC,
    но к сожалению результирующий файл не работает под Windows 7, 8, 32-64 bits
    Помогите, пожалуйста, разобраться.
    Код:
    		  # include <stdio.h>
    		  # include <conio.h>
    		  # include <iostream>
    		  # include <windows.h>
     
    		  void print_xy (
    						  int x, // абсцисса
    						  int y, // ордината
    						  char s, // cимвол
    						  int color, // цвет символа
    						  int fon // фон символа
    						)
    		  {
    			// Этот код компилируется под Borland C++ 3.1 и
    			// и программа работает под Windows 7 32 bit
    			
    			// Но этот код хотя и компилируется под TDM-GCC Dev-C++
    			// но, увы, не работает под Windows 7 32 bit -
    			// зависает с ошибкой :-(
    			
    			// Код нужен, для того, чтобы постоянно выводить
    			// текущее время в опредленные позиции консоли во
    			// во время работы текстового редактора
      
    			/*
    			  // MSP, 15.01.99, 10:54
    			  молниеносный вывод символа на экран, через видеопамять.
    			  модель памяти Large
     
    			  Иногда бывает удобно или необходимо изменить модель памяти
    			  для отдельных функций или данных. Это изменение можно
    			  произвести с помощью модификаторов near, far и huge.
     
    			  char far *
    				data;
     
    			  Указатель data теперь является дальним указателем независимо
    			  от того, какая модель памяти указана компилятору при обработке
    			  программы.
    			  Я указал Compact. А для data будет работать Large.
    			*/
     
    			/*
    			  MSP, 23.03.15, 21:46
    			  По каким адресам располагается окно консоли?
    			  Это правильный код?
    			*/
    			
    			char far * v_mem = (char far *) 0xb8000000L;
    			v_mem += (x - 1) * 2 + (y - 1) * 160;
    			* v_mem ++ = s;
    			* v_mem = color + (fon * 16);
     
    		  } // end void print_xy (int, int, char, int, int)
    		  
    		  using namespace std;
     
    		  int main ()
    		  {
    			system ("cls");
    			
    			// молниеносный вывод белого символа на синем фоне символа (!)
    			// в позицию (10, 8) экрана консоли,
    			// при молниеносном выводе
    			// курсор отключен, его не видно, он не мигает
    			print_xy (10, 8, '!', 15, 1);
    			
    			getch ();
    			
    			return 0;
    		  }
    
     
  2. rrrFer

    rrrFer Гость

    Репутация:
    0
    Стандартными средствами это сделать невозможно. Такой код не может быть кроссплатформенным.

    Используйте библиотеку curses - ее авторы реализовали различные версии для различных операционных систем, там решена эта и другие задачи (например вывод цветного текста в консоль).
     
    2 пользователям это понравилось.
  3. mspSUSE

    mspSUSE New Member

    Репутация:
    0
    Регистрация:
    20 июл 2009
    Сообщения:
    3
    Симпатии:
    0

    Большое спасибо!
     
Загрузка...
Похожие Темы - Мгновенный вывод символа
  1. Allexei
    Ответов:
    3
    Просмотров:
    1.758
  2. deeeman
    Ответов:
    2
    Просмотров:
    2.336
  3. Kay
    Ответов:
    1
    Просмотров:
    38
  4. ter.imanyan2017
    Ответов:
    2
    Просмотров:
    315
  5. Hehabr
    Ответов:
    0
    Просмотров:
    162

Поделиться этой страницей