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

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

Восстановить пароль Регистрация
 
vano47
2 / 2 / 0
Регистрация: 12.05.2012
Сообщений: 20
03.06.2012, 16:50     Изминение цвета текста в с++ #1
Нужно менять цвет текста когда троллейбус едем обратно. Использую функцию 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++;}
       }
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
03.06.2012, 16:59     Изминение цвета текста в с++ #2
В самом с++ нет никаких функций для смены цвета текста. Это уже всё зависит от управления выводом в консоли. Некоторые компиляторы (борланд) ещё предоставляют свои функции для управления выводом, в том числе позволяют различными цветами выводить текст.
Ты в чём собрался "менять" цвет выводимого текста?
vano47
2 / 2 / 0
Регистрация: 12.05.2012
Сообщений: 20
03.06.2012, 20:15  [ТС]     Изминение цвета текста в с++ #3
Цитата Сообщение от Gepar Посмотреть сообщение
В самом с++ нет никаких функций для смены цвета текста. Это уже всё зависит от управления выводом в консоли. Некоторые компиляторы (борланд) ещё предоставляют свои функции для управления выводом, в том числе позволяют различными цветами выводить текст.
Ты в чём собрался "менять" цвет выводимого текста?
компилирую в Борленде 3.1

Добавлено через 3 часа 8 минут
вобще нарыл я тут кое что.
видимо она(функция textcolor) не совместима с функцией cout, использую cprintf.
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
03.06.2012, 20:19     Изминение цвета текста в с++ #4
vano47, ну можешь воспользоваться средствами ОС по изменению цвета в консоли. Например можешь использовать system("color 4") - для красного цвета. В зависимости от цифры будут разные цвета.
Yandex
Объявления
03.06.2012, 20:19     Изминение цвета текста в с++
Ответ Создать тему
Опции темы

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