#include <stdio.h>// test
int main(void)
{
printf("%lc\n", L'€');
return (0);
}
То printf не чего не выведет, а для чего флаг 'l' вообще нужен, как он работает в контексте с 'c'?
Проверял в Mac os и Windows.
UPD
Если быть точнее я пишу свой printf и почитав про printf понял, что "%lc" позволяет вставлять в однобайтовую строку многобайтовый символ, но что то как показала практика printf не так работает.
Во-первых, нужно чтобы консоль понимала "широкие" символы. По умолчанию консоль Windows использует однобайтовую кодировку cp866, в которой символа "€" просто нет. Во-вторых, setlocale(LC_ALL, "") перед выводом.
Я про Windows и ее dos кодировку в курсе, поэтому и проверил в Mac os - где кодировка utf-8.
Хоть например в Mac os: write(1,"€",2);
Выводит как положено.