Возможное решение проблемы «неверной восьмеричной цифры» в char при наборе Alt Keys

Я пишу программу, которая выполняет квадратную формулу. Моя единственная проблема — фактическое форматирование программы. Клавиши alt, которые позволяют мне вводить знак плюс-минус и символ квадратного корня, вызывают у меня некоторые проблемы.

Проблема существует внутри

cout<< 0-b << char(241) << char(251) << char(0178);

Последний символ, набирающий квадратный символ (²), сообщает о недопустимой ошибке восьмеричной цифры. Есть ли способ обойти это, или мне придется удовлетворить, просто написав «х ^ 2»?

1

Решение

Вы должны просто удалить ведущий 0 от 0178, Ведущий ноль на числовой константе автоматически считается восьмеричным и 8 не является действительной восьмеричной цифрой.

В дополнение верхний индекс 2 вы имеете в виду это десятичный 178, U+00B2, Другим способом было бы просто использовать '\xb2' в вашем коде.

Конечно, вы также должны быть уверены, что все, что интерпретирует этот выходной поток, знает о символах Unicode, которые вы пытаетесь вывести. Это, вероятно, зависит от вашей терминальной программы или консоли. Если это не так, вам, возможно, придется прибегнуть к таким хакерам, как (x^2) или, что еще хуже, такие чудовища, как:

      3     2
3x  - 7x  + 42x - 1
y = -------------------
12
1

Другие решения

Других решений пока нет …