Как исправить предупреждение: C4129 'e': escape-последовательность нераспознанного символа - PullRequest
2 голосов
/ 05 августа 2020

Когда я пишу код с управляющей последовательностью ANSI, например .... \e[4m ~ \e[0m, я получал ошибку:

C4129 'e': нераспознанная escape-последовательность символов

и программа показывает мне, что escape-последовательность не установлена, а просто указывает \e[4Hello\e[0.

Как я могу это исправить?

1 Ответ

3 голосов
/ 05 августа 2020

Предполагается, что \e вставляет символ ES C (код ASCII 27), но его нет в стандарте C, только в некоторых нестандартных расширениях.

Вы можете использовать \33 вместо 1 . (33 - это восьмеричное представление десятичного числа 27.)

1: Это будет работать нормально (и является кратчайшим путем) для обычных управляющих последовательностей ANSI, поскольку следующий символ всегда будет [. Но в случае, если вам когда-либо понадобится использовать символ ES C в других обстоятельствах, обратите внимание, что вам понадобится \033 в случае, если за ним следует di git между 0 и 7, потому что в противном случае следующий di git ошибочно считалось бы частью восьмеричного числа. Как dxiv упоминал в комментариях, это может иметь место с некоторыми escape-последовательностями VT100.

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