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

Выделить вещественные константы другим цветом - C++

Восстановить пароль Регистрация
 
iTD
 Аватар для iTD
0 / 0 / 0
Регистрация: 14.03.2012
Сообщений: 29
27.04.2012, 16:43     Выделить вещественные константы другим цветом #1
Доброго времени суток !

В лр задание: выделить все вещественные константы другим цветом. (их 2 типа const float & const double)
Не могу придумать сам алгоритм, который можно было бы запрограммировать

Вот фрагмент кода где я прохожу по символьному файлу и нахожу имена всех вещ. констант (записываю их в многомерный массив). Далее я пытался сравнивать все слова из файла с записанными именами констант и красить это слово если оно равно записанной константе.

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
FILE *f;
    char string[N];
    char w[N];
    char word[N]; // необработанное имя вещественной константы 
    char words[M][N]; // многомерный массив обработанных имен вещественных констант
    int k=0;
    char *wordPtr;
    char *tc = "const";
    char *tf = "float"; 
    char *td = "double";
    
    if((f = fopen("L10.txt", "r")) == NULL)
    {
        puts("ERROR");
        getch();
    }
    else
    {
        while(!feof(f))
        {
            fgets(string, N, f);
            wordPtr = strtok (string, " ");
            while (wordPtr != NULL)
            {   
                if (strcmp(wordPtr, tc) == NULL) // начинаем искать вещественные константы (const float\double)
                {
                        wordPtr = strtok (NULL, " "); 
                        if (strcmp(wordPtr, tf) == NULL)
                        {
                            wordPtr = strtok (NULL, " "); 
                            strcpy (word, wordPtr);
                            for (int i=0; i<strlen(word); i++) // обрабатываем слово word
                            {
                                if (word[i] == '=')
                                    word[i] = '\0';
                            }
                            for (int i=0; i<strlen(word); i++) // запись обработанного слова word в многомерный массив words
                                words[k][i] = word[i];
                            k++;
                        }
                        if (strcmp(wordPtr, td) == NULL)
                        {
                            wordPtr = strtok (NULL, " "); 
                            strcpy (word, wordPtr);
                            for (int i=0; i<strlen(word); i++) // обрабатываем слово word
                            {
                                if (word[i] == '=')
                                    word[i] = '\0';
                            }
                            for (int i=0; i<strlen(word); i++) // запись обработанного слова word в многомерный массив words
                                words[k][i] = word[i];
                            k++;    
                        }
                }
                if (wordPtr != NULL)
                wordPtr = strtok (NULL, " ");
            }
        }
    }
Далее тяжело запрограммировать что бы в тексте подсвечивал константы (например имя константы "pi":
pi=3.14 \ ...pi)\ (pi.... \ pi=pi+x; и тд.

Ребят, подскажите пожалуйста, как можно облегчить работу ? Уже всю голову сломал. Сейчас думаю, чтобы посимвольно идти по файлу и там как нибудь реализовать

Заранее Спасибо !!!
ps писал в спешке, извините
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2012, 16:43     Выделить вещественные константы другим цветом
Посмотрите здесь:

C++ Вывести на экран содержимое файла с программой на С, подсвечива другим цветом все восьмеричные константы.
C++ Выделить цветом и подсчитать слова, содержащие среднюю букву – гласную
C++ Вывести на экран содержимое файла с программой на С, подсвечивая другим цветом ключевые слова.
C++ Выделить цветом символ в консоли
Дана строка символов. Выделить в ней цветом все символы C++
C++ Выделение текста другим цветом
C++ Цветом выделить треугольник, который имеет площадь, близкую к величине, заданной в файле
C++ Подсветить другим цветом идентификаторы
Алгоритм. Выделить из строки все вещественные числа C++
C++ Вывести на экран содержимое файла с программой на С, подсвечивая другим цветом все внешние переменные
Как выделить одну строку другим цветом C++
C++ Выделить цветом символы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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