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

Мне нужно упростить ввод таких данных - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Исключение нулевых элементов http://www.cyberforum.ru/cpp-beginners/thread1181427.html
Доброго времени суток, дали задание найти ошибку, программу набирал, но она не работает, ошибок нету, но и результата тоже, в чем может быть загвоздка ?
C++ Импорт графа из файла Добрый день! Задача по графам. Вот так реализована функция вывода графа на экран: void Graph::display() { for (int i = 1; i<100; i++) http://www.cyberforum.ru/cpp-beginners/thread1181408.html
Определить длину строки C++
Помогите сделать 2 программы 1)Вводдится строка содержащие пробелы, определить длину строки при помощи <strlen.h> и заголовочного модуля <string.h> 2) Дана строка. Определить кол-во слов в предложении
While срабатывает 2 раза, почему? C++
Сообственно код void main() { while(true){ cout<<"|y|"; _getch(); }
C++ Данодва довільні одновимірні масиви цілих чисел М1 і М2 з однаковою кількістю елементів. Сформувати масив М http://www.cyberforum.ru/cpp-beginners/thread1181380.html
Дано два довільні одновымерные масивов целых чисел М 1 і М 2 з однаковою кількістю елементів. Сформувати масив М3, елементами якого є числа, що утворюються за формулою M3=M1+M2.
C++ Нужен совет по чтению из файла и записи в структуру Суть следующая я могу просто считать из файла с выводом на экран нужен совет или направление в котором Думать , для того чтобы то что я считываю втолкнуть в структуру вот мой код #include <stdio.h> #include <Windows.h> #include <conio.h> #include <iostream> подробнее

Показать сообщение отдельно
Krogoth
Сообщений: n/a
19.05.2014, 21:48     Мне нужно упростить ввод таких данных
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
#define setCount(x) .count = x
#define setWord(x) .word = new (const char *[3])
#define setFunc(x) .func = new (void (*[3])())
 
void Reader::initSprites() {
    threadCount = 2;
    operationCount = new int[threadCount];
    operation = new (Operation (*[threadCount]));
 
    ///Sprite thread
    operationCount[0] = 6;
    operation[0] = new Operation[operationCount[0]];
 
    operation[0][0] setCount(3);
    operation[0][0] setWord (3) {"texture", "=", ""};
    operation[0][0] setFunc (3) {NULL, NULL, &Sprites::Load::setTextureFile};
 
    operation[0][1] setCount(3);
    operation[0][1] setWord (3) {"sizeX", "=", ""};
    operation[0][1] setFunc (3) {NULL, NULL, &Sprites::Load::setSizeX};
 
    operation[0][2] setCount(3);
    operation[0][2] setWord (3) {"sizeY", "=", ""};
    operation[0][2] setFunc (3) {NULL, NULL, &Sprites::Load::setSizeY};
 
    operation[0][3] setCount(3);
    operation[0][3] setWord (3) {"offsetX", "=", ""};
    operation[0][3] setFunc (3) {NULL, NULL, &Sprites::Load::setOffsetX};
 
    operation[0][4] setCount(3);
    operation[0][4] setWord (3) {"offsetY", "=", ""};
    operation[0][4] setFunc (3) {NULL, NULL, &Sprites::Load::setOffsetY};
 
    operation[0][5] setCount(3);
    operation[0][5] setWord (3) {"sheet", "{", "}"};
    operation[0][5] setFunc (3) {NULL, &Sprites::Sheet::Load::beginThread, &Sprites::Sheet::Load::endThread};
 
    ///Sheet thread
    operationCount[1] = 6;
    operation[1] = new Operation[operationCount[1]];
 
    operation[1][0] setCount(1);
    operation[1][0] setWord (1) {"vertical"};
    operation[1][0] setFunc (1) {&Sprites::Sheet::Load::vertical};
 
    operation[1][1] setCount(1);
    operation[1][1] setWord (1) {"horizontal"};
    operation[1][1] setFunc (1) {&Sprites::Sheet::Load::horizontal};
 
    operation[1][2] setCount(3);
    operation[1][2] setWord (3) {"firstX", "=", ""};
    operation[1][2] setFunc (3) {NULL, NULL, &Sprites::Sheet::Load::setFirstX};
 
    operation[1][3] setCount(3);
    operation[1][3] setWord (3) {"firstY", "=", ""};
    operation[1][3] setFunc (3) {NULL, NULL, &Sprites::Sheet::Load::setFirstY};
 
    operation[1][4] setCount(3);
    operation[1][4] setWord (3) {"frames", "=", ""};
    operation[1][4] setFunc (3) {NULL, NULL, &Sprites::Sheet::Load::setFrames};
 
    operation[1][5] setCount(3);
    operation[1][5] setWord (3) {"variations", "=", ""};
    operation[1][5] setFunc (3) {NULL, NULL, &Sprites::Sheet::Load::setVariations};
}
Эта процедура инициирует операции для чтения файлов типа Sprites (с 1 фигурной скобкой после ключевого слова sheet).
Есть ли возможность:
1. Оптимизировать ввод этих данных, или чтобы хотя бы красиво.
2. Заменить текущий алгоритм определения нужной операции по слову через цикл while на что-то более эффективное, потому что сейчас я делаю вот что:
C++
1
2
3
4
5
6
7
8
9
10
11
            file >> word;
            for (int i = 0; i != operationCount[thread]; i++)
            if (word == operation[thread][i].word[0]) {
                if (operation[thread][i].count != 1) {
                    code[thread] = i;
                    stage[thread] = 1;
                }
                if (operation[thread][i].func[0] != NULL)
                    operation[thread][i].func[0]();
                break;
            }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru