在控制台中打印填充的方块

时间:2014-10-18 09:29:06

标签: c++ linux ascii

我需要使用我的C ++程序(1cm x 1cm大小)在Linux终端中打印填充的正方形。我尝试使用ASCII 254(■),但在终端中它打印为垃圾字符。我不确定如何使用c ++打印扩展的ASCII字符。以下是我尝试打印扩展ASCII的两种方法。但没有成功。

第一种方法

for(int i=128; i< 255; i++ )
{
 std::cout << static_cast<char>(i) << std::endl;
}

第二种方法

unsigned char temp = 'A'
for(int i=65; i< 255; i++ )
{
 std::cout << temp++ << std::endl;
 std::wcout << temp << std::endl;
}

任何建议或替代想法?

4 个答案:

答案 0 :(得分:7)

尝试使用unicode cout << "\u25A0";

http://www.fileformat.info/info/unicode/category/So/list.htm

答案 1 :(得分:1)

或者只是尝试:

std::cout << (char)254u;

答案 2 :(得分:1)

试试这个:

char t = -2;
cout << t;

答案 3 :(得分:1)

就像塞巴斯蒂安·库钦斯基(SebastianKuczyński)所建议的那样,我们可以使用它来做棒图,条形图之类的很棒的东西。

代码

printf("\n\nHistogram of Float data\n");
    for (i = 1; i <= bins; i++)
    {
        count = hist[i];
        printf("0.%d |", i - 1);
        for (j = 0; j < count; j++)
        {
            printf("%c", (char)254u);
        }
        printf("\n");
    }

输出

Histogram of Float data
0.0 |■■■■■■■■■■■■■■■■■■■■■■
0.1 |■■■■■■■■■■■■■■■■
0.2 |■■■■■
0.3 |■■■■■■■■■■■■■■
0.4 |■■■■■■■■
0.5 |■■■■■■■■■■■■■■■■
0.6 |■■■■■■■■■■
0.7 |■■■■■■■
0.8 |■■■■■■■■■■■■■■■
0.9 |■■■■■■■