Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
first_rastler
0 / 0 / 0
Регистрация: 27.10.2016
Сообщений: 11
1

Реализовать консольное меню

01.11.2016, 19:26. Просмотров 1400. Ответов 7
Метки нет (Все метки)

подскажите как реализовать консольное меню на Си чтоб в консоли можно было перемещатся между пунктами стрелками или просто нажымая цыфры
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2016, 19:26
Ответы с готовыми решениями:

Консольное меню - нужен пример
Здравствуйте у кого есть в загашнике выпадающее меню в консоли кинте...

Реализовать консольное игровое приложения "Пятнашки" (с чего начать, какую литературу и какие темы изучать?)
День добрый. Я - первокурсник, не так давно начал изучать язык С. И вот выдали...

Реализовать меню для игры
setca(); // Сетка псевдографики для игры setlocale(LC_ALL, "Russian" ); //...

Реализовать меню и вычислить функцию
Написать программу: 1) выводит на экран меню 1.введение данных 2.обчислення...

Реализовать меню с использованием стрелок
Помогите транслировать код из Паскаль в Си. Попросту говоря, это обычное меню с...

7
hamst
0 / 0 / 0
Регистрация: 31.10.2016
Сообщений: 2
01.11.2016, 19:57 2
можно так

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
40
char ch;
    do
    {
        system("cls");
        cout<<"МЕНЮ:\n";
        cout<<"1-действие 1 \n";
        cout<<"2-действие 2 \n";
        cout<<"3-действие 3 \n";
        cout<<"4-действие 4 \n";
        cout<<"Esc-Выход \n";
        ch=getch();
 
        switch(ch)
        {
        case '1':
            system("cls");
            cout<<"\t действие 1 \n";
            system("pause");
            break;
 
        case '2':
            system("cls");
            cout<<"\t действие 2 \n";
            system("pause");
            break;
 
        case '3':
            system("cls");
            cout<<"\t действие 3 \n";
            system("pause");
            break;
 
        case '4':
            system("cls");
            cout<<"\t действие 4 \n";           
            system("pause");
            break;
        }
    }
    while(ch!=27);
0
first_rastler
0 / 0 / 0
Регистрация: 27.10.2016
Сообщений: 11
01.11.2016, 21:52  [ТС] 3
ето цифрами...а как стрелочкой?
0
sourcerer
Модератор
Эксперт CЭксперт С++
4896 / 2082 / 326
Регистрация: 20.02.2013
Сообщений: 5,567
Записей в блоге: 24
Завершенные тесты: 1
02.11.2016, 11:47 4
hamst, на Си Ваш код не скомпилируется. У Вас вывод на консоль плюсовый (объект cout), а не сишный.
0
hamst
0 / 0 / 0
Регистрация: 31.10.2016
Сообщений: 2
02.11.2016, 13:05 5
тогда делать вывод через printf. или подключить пространство имен using namespace std;
0
gazlan
3161 / 1920 / 312
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
02.11.2016, 20:39 6
В этой теме найдете пример от MS: Частичная очистка экрана консоли
0
sourcerer
Модератор
Эксперт CЭксперт С++
4896 / 2082 / 326
Регистрация: 20.02.2013
Сообщений: 5,567
Записей в блоге: 24
Завершенные тесты: 1
03.11.2016, 08:50 7
Цитата Сообщение от hamst Посмотреть сообщение
тогда делать вывод через printf
hamst, именно.

Цитата Сообщение от hamst Посмотреть сообщение
или подключить пространство имен using namespace std
hamst, нет такого в Си. Обратите внимание на то, что это раздел именно C, а не C++.
0
andreyka93
128 / 128 / 157
Регистрация: 11.04.2015
Сообщений: 343
03.11.2016, 10:44 8
Лучший ответ Сообщение было отмечено first_rastler как решение

Решение

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <stdio.h> 
#include <windows.h>
 
static int value = 1;
 
int print_menu(int index) {
    if (index > 4 || index < 0) return 0;
    (index == 1) ? printf("First            @\n") : printf("First           \n");
    (index == 2) ? printf("Second           @\n") : printf("Second          \n");
    (index == 3) ? printf("Third            @\n") : printf("Third           \n");
    (index == 4) ? printf("Forth            @\n") : printf("Forth           \n");
}
 
void selected(int button) {
    system("cls");
    printf("##################\n");
    printf("##################\n");
    printf("# %d was selected #\n", button);
    printf("##################\n");
    printf("##################\n");
    getch();
}
 
int button_process() {
    
    char ch = '0';
    while (!kbhit());
    ch = getch();
    switch (ch) {
        case '1': 
            value = ch - 0x30;
            selected(value);
            break;
        case '2': 
            value = ch - 0x30;
            selected(value);
            break;
        case '3': 
            value = ch - 0x30;
            selected(value);
            break;
        case '4': 
            value = ch - 0x30;
            selected(value);
            break;
    }
    if (ch == 72) {
        //Arrow up
        value -= 1;
        if (value == 0) value = 4;
    }
    else if (ch == 80) {
        //Arrow down
        value += 1;
        if (value == 5) value = 1;
    }
    else if (ch == 13) {
        // Enter button
        selected(value);
    }
    return value;
}
 
int main()
{
    int button = 1;
    while (1) {
        print_menu(button);
        button = button_process();
        system("cls");
    }
    system("PAUSE");
}
1
03.11.2016, 10:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2016, 10:44

Написать меню и реализовать подключение мышки, всплывающие окна, табуляцию с подсветкой
Доброе время суток, у меня стоит задача написать менюшку в обычном Си. Где...

Разработать консольное приложение
Предусмотреть ввод исходных данных с клавиатуры и вывод на экран исходных...

Не получается создать консольное приложение в VS
Установил Visual Studio 2012 и не могу создать консольное приложение Win32. Что...


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

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

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