Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Приложения для телефона https://www.cyberforum.ru/ cpp-beginners/ thread163289.html
Писать приложения для телефона можно только на Java? Просто я слышал, что можно писать на си++ приложения для телефона, это правда?
C++ Защита программы
Требуется, чтобы программа работала в двух режимах: - Режим с ограничениями (демо) - Режим полной функциональности Методы регистрации программы пока что не интересуют. Думаю, как это лучше сделать, в голову пришла такая мысль. Создается специальный класс-защитник, в который инкапсулируется класс основной программы. В главной функции создается объект защитника и запускается. В методе...
C++ Чтение файла по блокам https://www.cyberforum.ru/ cpp-beginners/ thread163251.html
Добрый день, помогите пожалуста с чтение файла на С++, без NET Фаил хранит блоки текста разделяемые текстовой меткой "END", блок при считывании хочу помешать в string, потом уже обрабатывать его. есть предложения, чтобы работало достаточно эффективно.
C++ Сеть и очередь структур Всем привет. Пишу клиент-серверное приложение, в качестве пакета данных у меня 4 int числа, в виде структуры. struct message { int arg; }; Клиентская программа параллельным потоком принимает данные от сервера, каждая "порция" данных это одна структура message. https://www.cyberforum.ru/ cpp-beginners/ thread163208.html
Получение времени года по введенному пользователем месяцу C++
Решить с помощью оператора Case. Написать программу, которая запрашивает у пользователя номер месяца и выводит соответствующее название времени года. В случае, если пользователь укажет недопустимое число, программа должна вывести сообщение "Ошибка ввода данных". Ниже представлен рекомендуемый вид экрана во время работы программы.Введите номер месяца (число от 1 до 12) и нажмите <Enter> -> 11.
C++ Динамической вектор https://www.cyberforum.ru/ cpp-beginners/ thread163197.html
Створить параметризований тип, динамической вектор.Реализировать функциї: додаванние и удаление елементов, поиск максимального за сер. оценками, сортировка за фамилиеи. ===================== Клас студент Поля: фамилия, факультет, середня оценка. Удалить тех студентов, сер.оценка которих ниже как 3!! ===================== Проблема с вектором
C++ Как получить левую часть строки? С попощю такого куска кода я получу результат: erty , тоесть правая часть строки qwerty, а как мне получить левую часть строки например qwer? Спасибо! void main() { char buf="qwerty"; char str; memcpy(str,buf+2,sizeof(str)); printf("%s\n",str); } https://www.cyberforum.ru/ cpp-beginners/ thread163194.html От значений элементов каждой строки двумерного массива вычесть значение минимального элемента этой строки C++
От значений элементов каждой строки двумерного массива вычесть значение минимального элемента этой строки.
C++ Оригинальная идея для курсовой https://www.cyberforum.ru/ cpp-beginners/ thread163135.html
Прошу помочь подсказать оригинальную идею для проекта. Огромную важность играет, чтобы проект в дальнейшем смог распостраняться бесплатно и смог помочь людям или организациям. Данный проет будет реализовываться в группе на языке Qt. Сложность проекта нас не пугает. Если данный топик разместил в не том разделе, то прошу меня извинить. Заранее спасибо.
C++ Общий делитель для двух натуральных чисел найти наименьший общий делитель для двух натуральных чисел https://www.cyberforum.ru/ cpp-beginners/ thread163132.html
C++ Поиск подходящих исходников
Люди, помогите найти исходники программ на C или С++, которые производят управление курсором мыши при помощи лазерной указки и Web-камеры. Просто я в этом полный ноль пока что, хочется разобраться с исходниками и на основе их уже написать саму программу которая это реализовывает. Помогите пожалуйста!
C++ Многопоточные библиотеки https://www.cyberforum.ru/ cpp-beginners/ thread163115.html
Всем добрый вечер! Разрабатываю приложение, которое в конечном итоге должно работать в несколько потоков, и не понимаю как реализовать. Библиотек для многопоточности много: 1. Набор библиотек Boost 2. OpenMP 3. OpenThreads 4. POCO Thread 5. Zthread 6. Pthreads (Ptreads-w32) 7. Qt4 Threads
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
03.09.2010, 18:18 0

Сделать функцию "Команда" - C++ - Ответ 938664

03.09.2010, 18:18. Показов 1644. Ответов 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
#include <map>
#include <string>
#include <iostream>
 
void f_begin() {
    std::cout << "call f_begin" << std::endl;
}
 
std::map <std::string, void (*)()> functions;
 
void init() {
    functions["BEGIN"] = f_begin;
}
 
void command(const char *cname) {
    functions[cname]();
}
 
int main()
{
    init();
    command("BEGIN");
}
Добавлено через 54 минуты
Вот быдолкод на Си
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
#include <stdio.h>
 
// Обработчик команды BEGIN
void f_begin() 
{
    printf("call f_begin\n");
}
 
// Максимальная длина имени команды
#define MAX_FNAME 32
 
// Максимальное количество обработчиков команды
#define MAX_NFUNC 32
 
// Тип указатель на функцию
typedef void (*fptr_t)(void);
 
// Структура КОМАНДА
typedef struct COMMAND 
{
    char name[MAX_FNAME];
    fptr_t ptr;
} command_t;
 
// Список команд
command_t functions[MAX_NFUNC] = 
{
    { "BEGIN", f_begin }
};
 
// Поиск обработчика по имени
int find_func(char *fname) 
{
    int i;
    
    for(i = 0; i < MAX_NFUNC; ++i)
        if(strcmp(functions[i].name, fname) == 0)
            return i;
            
    return -1;
}    
 
// Вызов обработчика по имени команды
void command(char *fname) 
{
    int i;
    
    if((i = find_func(fname)) == -1) {
        fprintf(stderr, "function not found\n");
        return;
    }
    
    functions[i].ptr();
}
 
int main()
{
    // YEAH!
    command("BEGIN");
}
Можно еще добавить управление списком команд: добавить команду, удалить команду и т.д. Список можно сделать динамическим.
Глубокий минус конечно в том, что все функции обработчики должны быть типа void и не принимать значений. На Си++ эту проблему в принципе можно решить с помощью шаблонов (учитывая что в грядущем стандарте должна появится поддержка шаблонов с переменным количеством аргументов).

Вернуться к обсуждению:
Сделать функцию "Команда" C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.09.2010, 18:18
Готовые ответы и решения:

Как сделать чтобы работала команда SetWindowSize?
Где нужно дописать, чтоб когда я открываю этот тест, так мне бы в окне показывало это ( через...

Как сделать так, чтобы команда повторялась?
есть код, нужно сделать так, чтобы программа запрашивала ввести команду до того момента, пока...

Как сделать, чтобы в if выполнялась ни одна команда, а несколько
Укажите на ошибки. И главный вопрос: как сделать, чтобы в if выполнялась ни одна команда, а...

Как сделать что бы команда ReadLn читала текст?
Каким типом данных нужно обозвать переменную 'a',что бы она читала текст? Например: ReadLn(a);...

Сделать блок-схему разветвления (команда безусловного перехода)
Блок-схема (Разветвление: команда безусловного перехода. Само задание: Составить программу,...

11
03.09.2010, 18:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.09.2010, 18:18
Помогаю со студенческими работами здесь

Как сделать чтобы команда всегда была активна?
&lt;script&gt; var startTime = (new Date().getTime()); var updatedValues = ; Команда...

Добрый день. Вероятность того что команда а и команда б забьет 2,3,4,5 голов
Команда а, сыграла дома 12 матчей забила 17 мячей и пропустила 7 Команда б, сыграла в гостях 12...

Как сделать while, чтобы команда повторялась только 1 раз за цикл?
как сделать исключение для команды while, чтобы команда повторялась только 1 раз за цикл?

Как сделать, чтобы команда выполнялась при запуске системы?
Ubuntu 13.04 Здравствуйте. Настраивал себе интернет на компе выполняя команду: pppoeconf. Далее...

как сделать чтоб команда выполнялась через некоторое время?
все в заголовке:)

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru