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

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

Войти
Регистрация
Восстановить пароль
 
iTD
0 / 0 / 0
Регистрация: 14.03.2012
Сообщений: 29
#1

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

27.04.2012, 16:43. Просмотров 514. Ответов 0
Метки нет (Все метки)

Доброго времени суток !

В лр задание: выделить все вещественные константы другим цветом. (их 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 писал в спешке, извините
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2012, 16:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выделить вещественные константы другим цветом (C++):

Вывести на экран содержимое файла с программой на С, подсвечива другим цветом все восьмеричные константы. - C++
Вывести на экран содержимое файла с программой на С, подсвечива другим цветом все восьмеричные константы. Имею представление об алгоритме...

Как выделить одну строку другим цветом - C++
Не судите строго, второй день изучаю С++. Прочитал много тем, нашел несколько подходящих тем, но там всё равно не то. В общем мне нужно,...

Выделить в массиве число выделить его каким-нибудь цветом - C++
Выделить минимальное и максимальное значение в массиве каким-нибудь цветом отличающимся от остальных элементов массива.Вывести массив на...

Подсветить другим цветом идентификаторы - C++
Вывести на экран содержимое файла с программой на С, подсвечивая другим цветом все идентификаторы типа int. (если можно с...

Выделение текста другим цветом - C++
По нажатию произвольной клавиши поочередно выделяет каждое слово текста. Как выполнить эту задачу? Я начал писать прогу по выводу текста...

Алгоритм. Выделить из строки все вещественные числа - C++
Здравствуйте. Стоит задача: выделить из строки все вещественные числа. Набросал алгоритм и код, но что-то не работает ;( Да и не знаю, как...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2012, 16:43
Привет! Вот еще темы с ответами:

Выделить цветом символы - C++
Здравствуйте. Подскажите как можно выделить цветом определённые символы в тексте после того как он уже напечатан?

Выделить цветом символ в консоли - C++
Всем привет. Нужно в массиве выделять другим цветом определенный символ. enum COLOR {BLUE = 9, GREEN, TURQUOISE, RED, VIOLET, YELLOW}; ...

Вывести на экран содержимое файла с программой на С, подсвечивая другим цветом ключевые слова. - C++
Вывести на экран содержимое файла с программой на С, подсвечивая другим цветом ключевые слова. Не знаю как сравнивать является слово...

Вывести на экран содержимое файла с программой на С, подсвечивая другим цветом все внешние переменные - C++
Вывести на экран содержимое файла с программой на С, подсвечивая другим цветом все внешние переменные. Программа может читать коды только...


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

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

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