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

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

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

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

03.06.2012, 16:50. Просмотров 879. Ответов 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++;}
       }
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2012, 16:50     Изминение цвета текста в с++
Посмотрите здесь:

C++ Изменение цвета текста и фона при консольном выводе
C++ Заданы два текста. Определить, можно ли получить первый текст перестановкой слов второго текста.
Изменение цвета текста и фона в консольном приложении C++
C++ Задание цвета текста в консоли на C
C++ Форматирование текста и изменение цвета текста в консоли
Изменение цвета текста C++
С++ Builder Циклы с условием (при вводе адреса цвета (например, 0 255 0) выдавать имя цвета) C++
Выводит адрес текста, вместо самого текста C++
C++ Изменение цвета текста в консоли
C++ Изменение цвета текста/фона при консольном выводе
Проверьте правильность текста программы проверки текста заклинаний. C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
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
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
03.06.2012, 20:19     Изминение цвета текста в с++ #4
vano47, ну можешь воспользоваться средствами ОС по изменению цвета в консоли. Например можешь использовать system("color 4") - для красного цвета. В зависимости от цифры будут разные цвета.
Yandex
Объявления
03.06.2012, 20:19     Изминение цвета текста в с++
Ответ Создать тему
Опции темы

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