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

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

Войти
Регистрация
Восстановить пароль
 
vano47
2 / 2 / 0
Регистрация: 12.05.2012
Сообщений: 20
#1

Изминение цвета текста в с++ - C++

03.06.2012, 16:50. Просмотров 939. Ответов 3
Метки нет (Все метки)

Нужно менять цвет текста когда троллейбус едем обратно. Использую функцию textcolor(RED) и как то она не понятно работает(( Цвет не сразу меняется когда выполняется оператор.

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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <iostream.h>
#include <dos.h>
 
class troleibus{
    int V, Tkon, Tprom, S, Ras[7], Raso[7], ost[7], flag[7], flag1, flag2, flag3, t, i1;
 
public:
    troleibus();
    ~troleibus(){}
    void move(){S+=V;}
        void qq(){Tprom=2;}
    int rasto(){return S;}
        void pro(){S=0;}
        int skorost(){return V;}
 
        void uu(int R){ 
                  t=(R-S)/V;
           }
        int proverka(){return flag2;}
                int proverka1(){return flag3;}
                void stoanka(){
                if(Tprom==1){  flag3=0; Tprom=2; cout<<"\nStoim na octanovke "<<i1+2<<" 0 sec\n";}
                else {Tprom-=1; cout<<"\nStoim na octanovke "<<i1+2<<" "<<Tprom<<" sec\n";}}
 
void stoanka1(){
                if(Tprom==1){  flag3=0; Tprom=2; cout<<"\nStoim na octanovke "<<i1<<" 0 sec\n";}
                else {Tprom-=1; cout<<"\nStoim na octanovke "<<i1<<" "<<Tprom<<" sec\n";}}
 
        void edem_tuda();
        void edem_obratno();
    };
 
        troleibus::troleibus(){V=1; S=0; Tkon=2; Tprom=2;
    Ras[0]=0; Ras[1]=10; Ras[2]=22; Ras[3]=37; Ras[4]=48; Ras[5]=60; Ras[6]=74;// растояние от 0-го пунката до n-го
    Raso[6]=0; Raso[5]=14; Raso[4]=26; Raso[3]=37; Raso[2]=53; Raso[1]=64; Raso[0]=74;// растояние от 0-го пунката до n-го
    ost[0]=1; ost[1]=2; ost[2]=3; ost[3]=4; ost[4]=5; ost[5]=6; ost[6]=7;
    for(int i=0;i<7;i++) flag[i]=0;
    flag1=0; flag2=1; flag3=0;}
 
        void troleibus::edem_tuda(){ 
        for(int i=0;i<7;i++){textcolor(GREEN);  
            if(S>Ras[i]){
                           if(flag[i]==0){flag[i]=1;
                            
                           i1=i; 
                           cout<<" Trolleibus edet k "<<ost[i+1]<<" ostanovke\n";
                                 
                           t=(Ras[i+1]-S)/V;
                                       
                           cout<<"Do pribiti9 na "<<ost[i+1]<<" ostanovku ostalos "<<t<<" sec\n";
                                              }
                            else{ 
                                  if(flag1==0){ flag1=2;
                      
                                 t=(Ras[i1+1]-S)/V;
                                  if(t==0)flag3=1;
                                  if(t==-1){if(i1==5){S=0; S+=V;  flag2=1;  
                                  for(int r=0;r<7;r++)
                                  flag[r]=0;}} 
                   else {cout<<" Trolleibus edet k "<<ost[i1+1]<<" ostanovke\n";
                         cout<<"Do pribiti9 na "<<ost[i1+1]<<" ostanovku ostalos "<<t<<" sec\n";
                                        }}
                                }
                                            }                   
                        }flag1=0;}
 
        void troleibus::edem_obratno(){ textcolor(RED);
        for(int z=6;z>0;z--){
            if(S>Raso[z]){
                           if(flag[z]==0){ flag[z]=1;
                            
                           i1=z;
                           cout<<" Trolleibus edet k "<<ost[z-1]<<" ostanovke\n";
                                 
                            t=(Raso[z-1]-S)/V;
                                       
                           cout<<"Do pribiti9 na "<<ost[z-1]<<" ostanovku ostalos "<<t<<" sec\n";
                                              }
                            else{ 
                                  if(flag1==0){ flag1=2;
                      
                                  t=(Raso[i1-1]-S)/V;
                                  if(t==0)flag3=1;
                                  if(t==-1){ if(i1==1){S=0; S+=V;  flag2=0; 
        for(int r=0;r<7;r++)
        flag[r]=0;}}
                   else {cout<<" Trolleibus edet k "<<ost[i1-1]<<" ostanovke\n";
                                         cout<<"Do pribiti9 na "<<ost[i1-1]<<" ostanovku ostalos "<<t<<" sec\n";
                                        }}
                                }
                                            }                               
            } flag1=0;}
 
 
  int main(){
    int N, interval, t=-1, k=1, u;
    struct time tm1,tm2;
    troleibus *trole;
        char c;
    
 
    cout<<"Vvedite koli4estvo troleibusov: ";
    cin>>N;
    cout<<"Vvedite interval: ";
    cin>>interval;
        trole=new troleibus[N]; 
            
   cout<<"Troleibusi poexali...";
 
    for(;;){
        gettime(&tm1);
        do {if(kbhit()) {c=getch();
                    
          if(c==27)
           { clrscr(); cout<<"Doezdilis!"; getch();
             delete[]trole; return 0;
            }}
            gettime(&tm2);
            if(tm2.ti_min>tm1.ti_min)
               tm2.ti_sec+=60;
            }while ((tm2.ti_sec-tm1.ti_sec)<1);
        t++;
           clrscr();
                    
      for(int j=0; j<k; j++){
          if((trole+j)->proverka1()==0){
                   (trole+j)->move();
          if((trole+j)->proverka()==0){ 
                          textcolor(RED);
                          cout<<"\n"<<j+1;
              (trole+j)->edem_tuda();}
          else{ textcolor(GREEN); cout<<"\n"<<j+1; (trole+j)->edem_obratno();}}
        else {if((trole+j)->proverka()==0){ (trole+j)->stoanka();}
               else{ (trole+j)->stoanka1();}}}
      cout<<"\n";
          if(t==interval){t=0;
               if(k<N)
                  k++;}
       }
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2012, 16:50
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Изминение цвета текста в с++ (C++):

Форматирование текста и изменение цвета текста в консоли - C++
Подскажите пожалуйста, как форматировать текст в консоли, а также как менять его цвет

Изменение цвета текста - C++
Привет всем. Можно ли в консоле менять цвет ЧАСТИ текста? тоесть выделить одно слово другим цветом например Просто system(color ** )...

Изменение цвета текста в консоли - C++
Как изменить цвет только определённого текста в консоли? Например изменить цвет элементов матрицы, расположенных выше побочной диагонали?

Задание цвета текста в консоли на C - C++
Как задать цвет в с ?

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

Изменение цвета текста и фона при консольном выводе - C++
Всем привет. Помогите решить мою проблему. Как менять цвет текста и фона при консольном выводе. Чё-то конкретного примера я не нашёл. Не...

3
Gepar
1181 / 537 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
03.06.2012, 16:59 #2
В самом с++ нет никаких функций для смены цвета текста. Это уже всё зависит от управления выводом в консоли. Некоторые компиляторы (борланд) ещё предоставляют свои функции для управления выводом, в том числе позволяют различными цветами выводить текст.
Ты в чём собрался "менять" цвет выводимого текста?
0
vano47
2 / 2 / 0
Регистрация: 12.05.2012
Сообщений: 20
03.06.2012, 20:15  [ТС] #3
Цитата Сообщение от Gepar Посмотреть сообщение
В самом с++ нет никаких функций для смены цвета текста. Это уже всё зависит от управления выводом в консоли. Некоторые компиляторы (борланд) ещё предоставляют свои функции для управления выводом, в том числе позволяют различными цветами выводить текст.
Ты в чём собрался "менять" цвет выводимого текста?
компилирую в Борленде 3.1

Добавлено через 3 часа 8 минут
вобще нарыл я тут кое что.
видимо она(функция textcolor) не совместима с функцией cout, использую cprintf.
0
Gepar
1181 / 537 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
03.06.2012, 20:19 #4
vano47, ну можешь воспользоваться средствами ОС по изменению цвета в консоли. Например можешь использовать system("color 4") - для красного цвета. В зависимости от цифры будут разные цвета.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2012, 20:19
Привет! Вот еще темы с ответами:

Изменение цвета текста/фона при консольном выводе - C++
Доброго времени суток. Как изменить цвет фона/текста в консоли с++ в формате RGB? Я знаю, что есть подобная фича в windows.h, но это не...

Бот для игры, эмуляция мышки, анализ цвета \ текста с области экрана - C++
Здравствуйте, простите за беспокойство, но не могу найти толковых статей \ гайдов по написанию ботов имитирующих действия мышки Если у...

С++ Builder Циклы с условием (при вводе адреса цвета (например, 0 255 0) выдавать имя цвета) - C++
Help, не могу решить задачку ЛБ: нужно написать программу, при вводе адреса цвета (на пример 0 255 0 выдавал имя цвета). ...

как сделать вывод текста, результата и продолжение текста - C++
#include &lt;iostream&gt; using namespace std; int main() { int win; cout&lt;&lt;&quot;Введите цифру\n&quot;; cin &gt;&gt; win; ...


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

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

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