Печать всех символов ASCII от 0 до 255 - PullRequest
0 голосов
/ 20 июня 2020

Если unsigned char находится в диапазоне от 0 до 255, не следует ли печатать все символы ASCII (даже со значениями больше 127)?

#include <iostream>


using namespace std;


int main(){

    for(int i=0 ; i <= 255 ; i++)
        cout << "ASCII NUMBER" << i << ':' << (unsigned char)i << endl;


    return 0;

}

Приведенный выше код работает должным образом для символы от 0 до 127, но не выше этого. Как можно напечатать эти символы?

1 Ответ

0 голосов
/ 22 июня 2020

Такая простая программа будет печатать символ ASCII, представленный каждым числом от 0 до 255.

#include <iostream>

int main()
{
    for(int i=0;i<256;i++){
        std::cout << (unsigned char)i << " " << i << "\n";
    }
}

Я зарегистрировал и символ ASCII, и его значение как целое число. Как вы увидите в выводе, если вы запустите его, после значения 127 вы получите странные символы. На моей машине Linux терминал напечатал этот символ для значений 128-255 .

Простой ресурс, такой как http://www.asciitable.com/, покажет вам все символы ASCII. Он показывает «нормальные» символы ASCII (0-127) и отдельную таблицу, отображающую «расширенные» символы ASCII (128-255). Вы не сможете печатать расширенные символы ASCII. Чтобы ответить на ваш вопрос, нет, вы не можете напечатать символы ASCII со значениями больше 127. Однако есть решение, которое представляет собой небольшую хитрость для печати одного из этих символов. Снова посмотрите ресурс http://www.asciitable.com/. В качестве примера я использовал символ ASCII со значением 219, . Простое копирование и вставка этого символа приведет к успешной печати символа (по крайней мере, на моей машине). Например, этот код будет работать:

#include <iostream>

int main()
{
    for(int i = 0; i < 50; i++){
        std::cout << "█";
    }
}

Надеюсь, он ответит на любые ваши вопросы

...