Russian Qt Forum

Qt => Вопросы новичков => Тема начата: cfwprbtv от Май 26, 2013, 11:14



Название: Как узнать/установить позицию каретки в консольном приложения?
Отправлено: cfwprbtv от Май 26, 2013, 11:14
Аналог функции gotoxy(int, int)? Нужно задать положение в координатах (x,y), то есть по вертикали и горизонтали.


Название: Re: Как узнать/установить позицию каретки в консольном приложения?
Отправлено: thechicho от Май 26, 2013, 15:30
Цитировать
for msvc its:
#include <windows.h>
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x; coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

Цитировать
#include <windows.h>

void gotoxy( int column, int line )
  {
  COORD coord;
  coord.X = column;
  coord.Y = line;
  SetConsoleCursorPosition(
    GetStdHandle( STD_OUTPUT_HANDLE ),
    coord
    );
  }

int wherex()
  {
  CONSOLE_SCREEN_BUFFER_INFO csbi;
  COORD  result;
  if (!GetConsoleScreenBufferInfo(
         GetStdHandle( STD_OUTPUT_HANDLE ),
         &csbi
         ))
    return -1;
  return result.X;
  }

int wherey()
  {
  CONSOLE_SCREEN_BUFFER_INFO csbi;
  COORD  result;
  if (!GetConsoleScreenBufferInfo(
         GetStdHandle( STD_OUTPUT_HANDLE ),
         &csbi
         ))
    return -1;
  return result.Y;
  }


Название: Re: Как узнать/установить позицию каретки в консольном приложения?
Отправлено: cfwprbtv от Май 26, 2013, 18:15
Спасибо! Работает. А насколько это кроссплатформенное решение? Если например компилировать под Linux, то будет работать?

И что за второй кусок кода? Что он значит? Я новичок пока. И как с mingw32 реализовать функцию?


Название: Re: Как узнать/установить позицию каретки в консольном приложения?
Отправлено: thechicho от Май 26, 2013, 18:31
//А насколько это кроссплатформенное решение?
вот настолько #include <windows.h>
//И что за второй кусок кода? Что он значит?
вам надо, вы и разбирайтесь, что он значит :) это цитаты, код не мой