• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kolory w programie

Object Storage Arubacloud
0 głosów
264 wizyt
pytanie zadane 17 maja 2017 w C i C++ przez ChiriChiri Obywatel (1,260 p.)
#include <windows.h>
#include <iostream>
#include <cstdlib>
using namespace std;

int main() {
	HANDLE hOut;
	int hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
	string tekst;
	string wzorzec;
	getline(cin, tekst); 
	getline(cin, wzorzec); 
	
	for (int i(0); i<tekst.size(); i++)
	{
		if  (tekst[i]==wzorzec[0])
		{
			int pom=0;int l=0;
			while(tekst[l+i]=wzorzec[l])
			{
				pom++;
				l++;
			}
		if(pom==wzorzec.size()) 
		for (int k(i); k<wzorzec.size);k++){ 
		SetConsoleTextAttribute( hOut, FOREGROUND_BLUE | FOREGROUND_INTENSITY ); 
		cout<<tekst[i]<<endl;}	
		}
		
	}
	return 0;
}

Co poprawić, żeby tekst się wyświetlił na kolorowo? 

komentarz 18 maja 2017 przez bartolinciu Dyskutant (7,580 p.)
Tekst się nie wyświetla czy wyświetla niekolorowo?
komentarz 18 maja 2017 przez ChiriChiri Obywatel (1,260 p.)
nie wyświetla się kolorowo, co prawda w zamyśle miał się wyświetlać trochę inaczej (cały wzorzec , a nie jego pierwsza literka) ale to jakiś błąd w tym kodzie a to narazie mało ważne dla mnie akurat
komentarz 19 maja 2017 przez bartolinciu Dyskutant (7,580 p.)
Na jakim systemie pracujesz? Jeśli linux, albo win10 to możnaby wykorzystać ansii escape codes.
komentarz 21 maja 2017 przez ChiriChiri Obywatel (1,260 p.)
windows 7

1 odpowiedź

0 głosów
odpowiedź 21 maja 2017 przez bartolinciu Dyskutant (7,580 p.)
W pętli wypisującej masz nawias przed k++
komentarz 22 maja 2017 przez ChiriChiri Obywatel (1,260 p.)
Poprawiłam ten nawias, ale nadal jest błąd, wyświetla że bład jest w tej części "int hConsole = GetStdHandle(STD_OUTPUT_HANDLE);"
komentarz 22 maja 2017 przez bartolinciu Dyskutant (7,580 p.)
Musiałem to przeoczyć. Problem polega na tym, że GetStdHandle zwraca HANDLE a nie int. Druga sprawa to to, że wynik GetStdHandle zapisujesz do hConsole, a do SetConsoleTextAttribute podajesz hOut
komentarz 22 maja 2017 przez ChiriChiri Obywatel (1,260 p.)
A tak przekładając to co napisałeś dla zielonych to co się tu zadziało i co z tym zrobić? xD
W ogóle czemu trzeba napisać takie coś przed użyciem tych funkcji (?), wywołujących kolory? To coś jak  srand( time( NULL ) ) w losowaniu liczb?
komentarz 22 maja 2017 przez bartolinciu Dyskutant (7,580 p.)
Chodzi o to, że funkcja SetConsoleTextAttribute, jako pierwszy argument przyjmuje uchwyt do konsoli używanej przez program. Ten uchwyt jest zmienną typu HANDLE i pobiera się go funkcją GetStdHandle. Ty w twoim kodzie masz zmienną typu HANDLE (hOut) i podajesz ją do funkcji SetConsoleTextAttribute, ale nie zawiera ona uchwytu do konsoli, ponieważ ten uchwyt zapisałeś do zmiennej hConsole, która jest typu int. Kompilator wyświetla błąd bo próbujesz zapisać wartość typu HANDLE do zmiennej typu int.

Podobne pytania

0 głosów
1 odpowiedź 2,926 wizyt
pytanie zadane 21 lipca 2016 w C i C++ przez Dominik W Użytkownik (500 p.)
+1 głos
2 odpowiedzi 274 wizyt
pytanie zadane 25 grudnia 2020 w C i C++ przez TOWaD Mądrala (5,700 p.)
–1 głos
1 odpowiedź 901 wizyt
pytanie zadane 14 marca 2019 w Grafika i multimedia przez Nimplex Początkujący (460 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...