Пробелы вместо символа ascii

0
#include <iostream>

int main() {
    for(int i=0;i<18;i++)
       std::cout << (char)i << '\n';
}

ВЫХОД:
Изображение 174551

Но где другие персонажи?
Изображение 174551

  • 2
    Это никоим образом не символы ASCII. Больше похоже на CP437.
  • 1
    О, они ASCII. Но они контрольные персонажи .
Показать ещё 4 комментария
Теги:
windows-7
visual-c++-2010

1 ответ

3
Лучший ответ

Символы, которые вы ожидаете увидеть, не ASCII. В ASCII коды ниже 32 означают, что называется управляющими символами, которые изначально предназначались для управления функциями на телетайп-принтерах. Многие из них не относятся к современным терминалам, поэтому ваш терминал просто выбрал некоторые символы (или получил их из какой-либо другой кодировки), например, лица и карточные костюмы, чтобы использовать для этих кодов. Тем не менее некоторые из символов управления ASCII все еще применимы.

  • 7 - это символ колокола ('\a'), возможно, вы слышали звуковой сигнал.
  • 8 является обратным пространством ('\b').

    std::cout << "abc" << (char)8 "def";//where the c?

  • 9 - горизонтальная вкладка ('\t'), поэтому она невидима, но вы, вероятно, заметите ее, если вы напечатаете видимые символы до и после нее.

    std::cout << "before" << (char)9 << "after";

  • 10 представляет собой линию, а также новую строку ('\n')

  • 13 - возврат каретки ('\r').

    std::cout << "hello" << (char)13 << "world";//where the hello?

Ваши результаты могут отличаться в зависимости от того, какой терминал вы используете.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню