Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 142, средняя оценка - 4.64
xGravity
0 / 0 / 0
Регистрация: 03.01.2010
Сообщений: 42
#1

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

13.05.2010, 10:18. Просмотров 21192. Ответов 26
Метки нет (Все метки)

Помогите реализовать новичку перемещение курсора в консоли.Т.е. есть меню например
Создать базу
Редактировать
Удалить
И нужно передвигатся по нему курсором
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2010, 10:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перемещение курсора в консоли (C++):

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

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

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

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

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

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

26
mind66
3 / 3 / 0
Регистрация: 27.09.2009
Сообщений: 41
13.05.2010, 13:15 #2
как по мне легче тогда уже в вин апи это сделать.
0
qpMM
0 / 0 / 0
Регистрация: 03.08.2010
Сообщений: 31
03.08.2010, 19:47 #3
mind66, вопрос читал? в чем смысл твоего ответа?

А вообще, та же ситуация. Собственно, вопрос:
Как можно переместить курсор в начало меню? А потом просто при нажатии курсорных стрелок выделять строку, в смысле, видоизменять ее и отлавливать подтверждение.
0
M128K145
Эксперт С++
8293 / 3513 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
03.08.2010, 20:25 #4
qpMM, а смысл в том, что не стоит так извращаться над консолью, ведь можно написать приложение на WinAPI и будет все намного проще и удобнее
0
Vladimir616
112 / 112 / 3
Регистрация: 05.07.2009
Сообщений: 224
03.08.2010, 20:35 #5
xGravity, qpMM,

C++
1
2
3
4
5
#include <windows.h>
 
COORD position = {0,0}; //позиция x и y
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hConsole, position);
2
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
04.08.2010, 01:37 #6
xGravity, если уж совсем новичёк - так сделайте проще
1 - Создать базу
2 - Редактировать
3 - Удалить
...
или обязательно с консольными "красивостями"? Если уж совсем серьёзно всё делать - так это нормальный графический интерфейс нужен. Самый быстрый путь по-моему C#. А если для личного пользования - так и с текстовым меню жить вполне можно...
0
qpMM
0 / 0 / 0
Регистрация: 03.08.2010
Сообщений: 31
04.08.2010, 07:37 #7
M128K145, я пока изучаю консольное программирование на С++, видно в какой раздел пишу?
Ясен пень, это все будет легче сделать с GUI, но мне пока туда рано соваться.
Vladimir616, спасибо большое, попробую.
0
M128K145
Эксперт С++
8293 / 3513 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
04.08.2010, 09:02 #8
qpMM, я тоже когда-то изучал "консольное программирования", но когда возникла необходимость я самостоятельно начал знакомится с MFC.
Я ни на чем не настаиваю, я просто объяснил смысл поста mind66
0
qpMM
0 / 0 / 0
Регистрация: 03.08.2010
Сообщений: 31
04.08.2010, 13:30 #9
Ну пока я должным образом не ознакомлюсь с консолью, на графику переходить не хочу. Да и это довольно интересно выделывать какие-либо вещи, не характерные для нее (консоли). Полученные знания все равно пригодятся, а голову поломать над реализацией одно только удовольствие
0
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
04.08.2010, 17:57 #10
qpMM, тебе поможет эта темка использование клавиш
там нужно дописать конструкцию свитч которая будет позволять бегать по менюшке.
0
neske
1502 / 869 / 84
Регистрация: 26.03.2010
Сообщений: 2,983
04.08.2010, 18:12 #11
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот простейший пример:

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); break;
                        case 77: SetCursorPos(x+=step, y); break;
                        case 72: SetCursorPos(x, y-=step); break;
                        case 80: SetCursorPos(x, y+=step); break;
                }
        } while(c != 27); // Esc
 
        system("pause");
        return 0;
}
4
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
04.08.2010, 18:39 #12
neske, все бы хорошо, только перемещается не курсор консоли, а курсор мыши...
1
neske
1502 / 869 / 84
Регистрация: 26.03.2010
Сообщений: 2,983
04.08.2010, 20:39 #13
Ах да, точно.
А то я увидел "курсор", и даже не задумывался ))
0
qpMM
0 / 0 / 0
Регистрация: 03.08.2010
Сообщений: 31
04.08.2010, 21:59 #14
Mur3ik, это все ясно, но кнопки-стрелки таким методом не ловятся. По крайней мере у меня. Переменная просто принимает значение 0. Я немного погуглил и теперь так делаю:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <conio>
#include <windows>
 
using namespace std;
 
int main() {
  int i;
  getch();
  i=(GetKeyState(VK_UP) & 0x100); // 256 - если нажата, 0 - если нет. 
  if (i) //действие;
Вроде работает. Вместо VK_UP можно подставить и другие, поменяв направление (VK_LEFT, например)

Добавлено через 2 минуты
Опа, пока писал, тему почистили..лан, будем пробовать

Добавлено через 12 минут
C++
1
2
3
4
case 75: SetCursorPos(x-=step, y); break;
case 77: SetCursorPos(x+=step, y); break;
case 72: SetCursorPos(x, y-=step); break;
case 80: SetCursorPos(x, y+=step); break;
у меня получались такие значения, но при простейшей проверке
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <conio>
 
using namespace std;
 
int main()
{
 char ch;
 ch=getch();
 if (ch==75) cout << "Left";
 return 0;
}
оказывалось, что не срабатывает.
0
neske
1502 / 869 / 84
Регистрация: 26.03.2010
Сообщений: 2,983
04.08.2010, 22:23 #15
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;
}
1
Миниатюры
Перемещение курсора в консоли  
04.08.2010, 22:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2010, 22:23
Привет! Вот еще темы с ответами:

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

Построчное перемещение курсора в текстовом файле - C++
Кусочек кода, см. комментарии switch(flag) { case'1': { f=fopen(value, &quot;r&quot;); //Открываем необходимый файл if...

Перемещение курсора мыши на заданные координаты и клик - C++
Добрый день. Подскажите, пожалуйста, как можно реализовать сабж. Гугление выдает некоторые варианты, но ни один из примеров не...

Перемещение текстового курсора вверх (анти endl;) - C++
Есть ли опрератор,который работает противоположно endl;?Тобиш мне нужен пробел не в низ,а вверх.


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru