2014-11-12 2 views
2

Я новичок в программировании и в настоящее время изучаю массивы на C. Я делаю загадку, содержащую 15 пронумерованных квадратов, установленных на кадре, и одна часть пуста. Она позволяет пользователю ударять любую из клавиш со стрелками (вверх, вниз, влево, вправо). Пользователь будет продолжать нажимать клавиши со стрелками до тех пор, пока номера не будут расположены в порядке возрастания. Эти части могут перемещаться по горизонтали и по вертикали. Моя проблема в том, что я не знаю, как позиционировать cursor.I знаю библиотечную функцию gotoxy(), но я думаю, что она была использована в Turbo C/C++. Я использую Code Blocks.I искал это в Google но не смог получить результат. И да, я говорю о клавиатурном курсе и использовании окна OS.Пожалуйста, помогите! :)Как разместить курсор на экране?

+0

Вы имеете в виду мышь курсор? О каком курсоре вы говорите? –

+0

@ jean-loup Я думаю, что OP относится к консольному курсору. BTW это зависит от того, какую платформу вы используете (например, Windows или Unix/Linux) –

+0

Я использую окно –

ответ

3

В старые времена MS/DOS использовал специальный драйвер ANSI.SYS для эмуляции кодов команд ANSI. Похоже, этот старый добрый драйвер можно использовать в Windows XP (но вам нужно настроить его в config.sys), но я нашел несколько статей, в которых говорится, что он больше не работает в Windows 7 и выше.

Таким образом, коды ANSI (или vt100 или vt220) полезны в терминалах Linux или Unix, но в Windows мой совет будет заключаться в прямом использовании функций консоли Windows API, объявленных в Wincon.h, но вы всегда должны включать Windows. h при использовании функций Windows API.

Вам нужно будет использовать Windows SDK в качестве ссылки, но здесь это небольшая программа написания foo_bar в положении: 15,5

#include <windows.h> 
#include <tchar.h> // compatibility 8/16 bits characters 

int _tmain(int argc, const LPSTR *argv) { 
    HANDLE hStdOut = ::GetStdHandle(STD_OUTPUT_HANDLE); // console output handle 
    COORD dwCursorPosition; 
    DWORD nb; 
    dwCursorPosition.X = 15; 
    dwCursorPosition.Y = 5; 
    ::WriteConsoleOutputCharacter(hStdOut, _T("foo_bar"), 7, dwCursorPosition, &nb); 

    return 0; 
} 

Ссылки: Console Reference на MSDN

+0

он показывает ошибку после компиляции «window.h: Нет такого файла или каталога» –

+0

Я написал 'windows.h '- обратите внимание на' s' –

+0

oh..awesome это работает.Thankyou alot.Btw я изучаю C, поэтому я не могу понять, какая программа вы написали выше. Можете ли вы объяснить мне это в C. Это будет действительно полезно для меня. –

Смежные вопросы