LINUX.ORG.RU

Цветной текст в консоли на Си


1

1

Привет, ЛОР! Такая вот задача: начал осваивать Си, дошёл до того, что надо осваивать цветной текст.

Хочу написать программу, которая бы делала простейшие геометрические примитивы разных цветов (красный, жёлтый, зелёный), но пока не нашёл информации, что нужно писать в исходном коде для определения цвета. Как и графических примитивов. Мож есть у кого материал по этой теме?

Заранее благодарен!

man console_codes

// ппц, школота не знает даже про поиск

anonymous
()

как-то так?

#include <stdio.h>

#define RESET   "\033[0m"
#define RED     "\033[1;31m"
#define YELLOW  "\033[1;33m"
#define WHITE   "\033[1;37m"

int main() {
    printf("%s00%s",    YELLOW, RESET);
    printf("%s===3%s ", RED,    RESET);
    printf("%s-.%s\n",  WHITE,  RESET);
}

anonymous
()

>начал осваивать Си

геометрические примитивы разных цветов

Лучше найдите другую задачу.
Напишите, например, домашнюю бухгалтерию на С.

trex6 ★★★★★
()

гугли SDL(в нём есть как свой отрисовщик, так и OpenGL).

jeuta ★★★★
()

Подсказываю скриптик, который поможет быстро посмотреть, как будет выглядеть тот или иной цвет и составить нужную escape-последовательность для него:

cat ~/bin/colors
#!/bin/sh
# this script has been written by Eddy 
#
#		colors
#
# Создан 17-го Июль 2009 года в 10:43
#
echo "
********* СВОЙСТВА **********
Название стиля 		| Код
------------------------|----
Сбросить все свойства 	| 0
Повышенная яркость 	| 1
Пониженная яркость 	| 2
Подчеркнутый		| 4
Нормальная яркость 	| 5
Инвертированный 	| 7
Скрытый 		| 8
********** ЦВЕТА ***********
Название цвета 	|Текст	|Фон
----------------|-------|---
Черный		| 30	| 40
Красный 	| 31	| 41
Зеленый 	| 32	| 42
Желтый		| 33 	| 43
Синий		| 34 	| 44
Маджента 	| 35	| 45
Циановый 	| 36	| 46
Белый		| 37 	| 47
----------------------------
Цвета задаются в формате [свойство;цвет_текста;цвет_фона] (можно указывать только один пар.),
например: \033[37;40m - белый текст на черном фоне
"
HEADER="\t\t"
for B in `seq 40 47`
do
	HEADER=`echo -e "$HEADER Фон $B\t\c"`
done

for A in 1 2 4 5 7 8 9
	do
	echo -e "\033[0m\n\n Свойство $A:\n$HEADER\c"
	for B in `seq 30 38`
		do
		echo -e "\n Текст $B\t\c"
		for C in `seq 40 47`
			do
				echo -e "\033[$A;$B;$C""m Буквы\t\c"
			done
		echo -e "\033[0m\c"
		done
	done
echo -e "\033[0m\n\n"

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.