Поправка: символы в ASCII кодируются от 0 до 127, и знаковость char на них не распространяется.
Всё, что за пределами 127, — это Latin-1, OEM, ANSI, UTF-8, что угодно, но не ASCII. Пишут, что всё это называют расширенным ASCII, но как можно о чём-то говорить, если это КОИ-8, и другие кодировки.
Приведённый код не переносим. Например, в Windows 10 есть возможность для старых программ врубить кодировку UTF-8 вместо всяких 1251 и 866. Там ваши ╬ совсем по-другому кодируются. Используйте только Юникод. В разных языках программирования и разных трансляторах качество стандартной библиотеки варьируется. Если стандартная библиотека бяка, придётся через API операционки работать, пока там до этих жирафов дойдёт.
Хорошим тоном будет, обнаружив консоль, писать в неё через юникодные API, а, обнаружив перенаправление, писать байты UTF-8, игнорируя ACP_OEM и пр., чтоб быстрее похоронить зоопарк всего, отличного от Юникода.