print a filled square in console

18,778

Solution 1

Try using the unicode cout << "\u25A0";

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

Solution 2

Or try just:

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

Solution 3

Try this :

char t = -2;
cout << t;

Solution 4

Like Sebastian Kuczyński has suggested , we could use that to do great stuff like bar graphs , hostogram etc. Its very cool.

Code

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");
    }

Output

Histogram of Float data
0.0 |■■■■■■■■■■■■■■■■■■■■■■
0.1 |■■■■■■■■■■■■■■■■
0.2 |■■■■■
0.3 |■■■■■■■■■■■■■■
0.4 |■■■■■■■■
0.5 |■■■■■■■■■■■■■■■■
0.6 |■■■■■■■■■■
0.7 |■■■■■■■
0.8 |■■■■■■■■■■■■■■■
0.9 |■■■■■■■
Share:
18,778
Nayana Adassuriya
Author by

Nayana Adassuriya

Updated on August 13, 2022

Comments

  • Nayana Adassuriya
    Nayana Adassuriya over 1 year

    I need to print a filled square in Linux terminal using my C++ program (1cm x 1cm size). I tried to use ASCII 254 (■), but in terminal it print as garbage character. I'm not sure how to print extended ASCII character using c++. Here are two methods I have tried to print extended ASCII. but not succeed.

    First method

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

    Second method

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

    Any suggestion or alternative Idea?