Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/403: Рейтинг темы: голосов - 403, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 03.01.2010
Сообщений: 42

Перемещение курсора в консоли

13.05.2010, 10:18. Показов 83654. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите реализовать новичку перемещение курсора в консоли.Т.е. есть меню например
Создать базу
Редактировать
Удалить
И нужно передвигатся по нему курсором
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.05.2010, 10:18
Ответы с готовыми решениями:

Перемещение курсора в консоли
Работаю над матричным калькулятором в консоли. Для оформления ввода матрицы надо, чтобы после ввода элемента, число считывалось, а курсор...

Перемещение позиции курсора в консоли
Приветы форумчанам, вопрос такой. Нужно переместить позицию курсора на произвольную позицию в консольном приложении. Есть ли такая функция...

Перемещение курсора
Мне нужно сделать что-то типа интерфейса на консоли.Как задавать координаты курсора на консоли в С++?(в Паскале аналог gotoxy()). ...

27
113 / 113 / 28
Регистрация: 05.07.2009
Сообщений: 225
08.08.2010, 11:50
Студворк — интернет-сервис помощи студентам
0
0 / 0 / 0
Регистрация: 03.08.2010
Сообщений: 31
09.08.2010, 10:38
А у меня вот так и курсор не двигается
Миниатюры
Перемещение курсора в консоли  
0
13 / 13 / 0
Регистрация: 29.10.2009
Сообщений: 71
28.06.2011, 03:59
надо было человеку ncurses подсказать , а не слать в глушь
0
Заблокирован
28.06.2011, 08:51
Цитата Сообщение от xGravity Посмотреть сообщение
Помогите реализовать новичку перемещение курсора в консоли.Т.е. есть меню например
Создать базу
Редактировать
Удалить
И нужно передвигатся по нему курсором
Понимаю вас)))
Кстати! Очень интересная вещь) Я сам когда то целую библиотеку сделал для управления консолью)
Можно было выводить цветной текст в любой точке консоли, вводить данные в консоль без нажатия ентер) Можно было ткнуть мышкой в центре консоли, и там менюшка откроется)

Можно было сделать игрушку "змейка" и управлять змейкой как кнопками, так и мышкой)

В консоли можно даже пиксельную графику рисовать. Кружочки там, точечки)
Можно вывести в консоль картинку bmp.

Я понимаю, что на самом деле консоль не предназначена для таких забав) Но когда-то, когда я только-только изучал с++, я вот что только не творил с этой многострадальной консолью.
Я даже мультики в ней на экран выводил))

К сожалению, за ненадобностью эта библиотека-обертка "консоль" где-то у меня уже затерялась.
Но на самом деле, нечто подобное сделать - ничего сложного.

Вот здесь все о консоли "из первых рук"
http://msdn.microsoft.com/en-u... S.85).aspx

А вот здесь примерно тоже самое, только на русском языке.

http://vsokovikov.narod.ru/New... con_fn.htm

Вот с этой последней ссылочки я и достал практически все, что мне нужно было знать о консоли.Фактически, на этой одной страничке обозначен весь интерфейс стандартной консоли Виндовс. Как видите, функций не много. И изучить их все - дело 1-2 дней если не напрягаться.
0
 Аватар для Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
17.08.2012, 20:11
Цитата Сообщение от neske Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <conio.h>
#include <windows.h>
 
int main()
{
        int x=0, y=0;
        int step=10;
        char c;
 
        SetCursorPos(x, y);
        do {
                c=getch();
                switch(c){
                        case 75: SetCursorPos(x-=step, y); std::cout << "LEFT.\n"; break;
                        case 77: SetCursorPos(x+=step, y); std::cout << "RIGHT.\n"; break;
                        case 72: SetCursorPos(x, y-=step); std::cout << "UP.\n"; break;
                        case 80: SetCursorPos(x, y+=step); std::cout << "DOWN.\n"; break;
                }
        } while(c != 27); // Esc
 
        system("pause");
        return 0;
}
Подскажите где вы коды к кнопкам брали
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
17.08.2012, 21:27
нажимаете кнопку, смотрите какой код. делов то.
C++
1
2
3
4
5
for(;;)
{
  int c=getch();
  std::cout << "code = " << c << std::endl;
}
Помню, что для спец кнопок иногда нужно два раза взять символ. в частности это про стрелки.
вот у меня завалялся примерно такой код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
  for (;;)
  {
    int ch = getch();
    if (ch == -32) // magic value // вот тут эта магия с двойным взятием введенного симсола проявляется
      ch = getch();
 
    switch (ch)
    {
      case 72 : // up
      {
        break;
      }
 
      case 75 : // left
      {
        break;
      }
 
      case 77 : // right
      {
        break;
      }
 
      case 80 : // down
      {
        break;
      }
 
      case 13 : // enter
      {
        break;
      }
 
      case 27 : // escape
      {
        break;
      }
    }
  }
1
 Аватар для Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
20.08.2012, 22:17
Цитата Сообщение от neske Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <conio.h>
#include <windows.h>
 
int main()
{
        int x=0, y=0;
        int step=10;
        char c;
 
        SetCursorPos(x, y);
        do {
                c=getch();
                switch(c){
                        case 75: SetCursorPos(x-=step, y); std::cout << "LEFT.\n"; break;
                        case 77: SetCursorPos(x+=step, y); std::cout << "RIGHT.\n"; break;
                        case 72: SetCursorPos(x, y-=step); std::cout << "UP.\n"; break;
                        case 80: SetCursorPos(x, y+=step); std::cout << "DOWN.\n"; break;
                }
        } while(c != 27); // Esc
 
        system("pause");
        return 0;
}
Если я удерживаю стрелку циклом выводятся надписи. Как этого избежать. Чтобы когда я нажал и удерживал стрелку вывод произожел один раз???
0
0 / 0 / 0
Регистрация: 12.01.2023
Сообщений: 2
12.01.2023, 20:08
int main()
{
int a;
cout << "cursor -> _____"<<"\b\b\b\b\b";
cin >> a;
return 0;
}
так можно переместить курсор по одной строке '\b' == один шаг назад
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.01.2023, 20:08

Перемещение курсора
Подскажите как передвинуть курсор в любую точку экрана по координатам x и y. Или каким нибуд другим способом?

Перемещение курсора в файле
Здравствуйте! Пишу программу, где работаю с файлом с помощью потока, и понадобилось переместить курсор в начало строки, т.к. getline при...

перемещение курсора в файле
как мне после первого цикла вернуть курсор в начала файла out? fseek ругает то, что первый элемент другого типа + без понятия количество...

Координаты курсора в консоли
Существует аналог функции паскалевской GoToXY(x,y) - перемещает курсор по заданным координатам. Получается у меня задание такое, что надо...

Смещение курсора по консоли
Всем привет! Я работаю в программе dev c++. И мне нужна помощь,чтобы определенный символ я смог переместить в любое место консоли...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru