Как напечатать символ микросекунды в C? - PullRequest
4 голосов
/ 21 февраля 2011

Я пытаюсь напечатать символ микросекунды в C, но я не получаю никаких данных на выходе.

printf("Micro second = \230");

Я также пытался использовать int i = 230;

printf("Character %c", i);

но зря! Есть указатели?

Ответы [ 4 ]

14 голосов
/ 21 февраля 2011

Это полностью зависит от кодировки символов, используемой консолью, которую вы используете.Если вы используете Linux или Mac OS X, то, скорее всего, кодировка будет UTF-8 .Кодировка UTF-8 для µ (кодовая точка Unicode U + 00B5) - «C2 B5» (два байта), поэтому вы можете напечатать ее следующим образом:

printf("Micro second = \xC2\xB5");  // UTF-8

Если вы в Windows, токодировка по умолчанию, используемая консолью: кодовая страница 437 , тогда µ кодируется как 0xE6, поэтому вам придется сделать это:

printf("Micro second = \xE6");  // Windows, assuming CP 437
2 голосов
/ 21 февраля 2011

Вот утвержденный стандартами способ печати в C:

printf("%lc", L'\u00b5');

Если вы счастливы, принимая UTF-8, я бы просто жестко кодировал "µ".

1 голос
/ 21 февраля 2011

Поскольку вы работаете в Mac OS, вы можете быть уверены, что терминал использует UTF-8.Поэтому откройте палитру символов («Правка» -> «Специальные символы ...»), найдите там символ микросекунды и поместите его прямо в строку.

int main()
{
    printf("µs\n");
}

Он будет работать столько же, сколько ваш исходный файл.это UTF-8 тоже.В противном случае вам нужно будет найти для него кодовую точку (которая также должна быть указана в палитре символов).Наведите курсор мыши на символ, чтобы найти его значение UTF-8 (и извините за французскую систему): Example of the Mac OS special characters palette showing a code point

Это означает, что вы можете использовать printf("\xc2\xb5") как независимую от кодировки замену самого символа.

0 голосов
/ 21 февраля 2011
  printf("%c", 230);

у меня работает. Я думаю, что это зависит от ОС. Это зависит от кодировки (спасибо zneak). Я на Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...