Действительно ли возможно окрасить консольный вывод просто ANSI C? Без внешней библиотеки? Это может быть сделано в Windows, Linux или Mac OS X?
просто ANSI C?
Нет. Стандарт C не предполагает, что стандартный вывод является консолью или имеет цвет.
Можно ли это сделать в Windows, Linux или Mac OS X?
Да. См. Как я могу печатать на консоли в цвете в Mac OS X кроссплатформенным способом? для Linux и Mac OS X.
Для Windows вам может потребоваться прямой доступ к Консольные функции , если вы не хотите использовать внешние библиотеки.
Действительно, ISO C ничего не знает о том, что консоль может отображать цвета, однако существует норма ANSI для управления возможностями консоли, основанная на управлении управляющими символами. Это работает прозрачно в Linux и Mac OS X, но не работает в Windows, где необходимо использовать примитивы Win32 API.
Ниже вы можете найти очень простую библиотеку, которая позволяет очистить экран, показать цвета и определить местоположение курсора в определенной координате, в мультиплатформенном виде (Win32 и Unix-подобные системы).
Она поставляется с исходными файлами на языке C (.c и .h), документацией doxygen на испанском языке (doc/) и простой демонстрацией (main.c)
в Linux это можно сделать, если вы знаете специфичные для оболочки управляющие коды / escape-последовательности.