Верхний индекс в выводе консоли C ++ - PullRequest
7 голосов
/ 28 октября 2010

Мне бы хотелось, чтобы моя программа вывела "cm 2 " (см в квадрате).

Как сделать верхний индекс 2?

Ответы [ 6 ]

17 голосов
/ 28 октября 2010

Как сказал Зан, это зависит от того, какую кодировку символов поддерживает ваш стандартный вывод.Если он поддерживает Unicode, вы можете использовать кодировку ² ( U + 00B2 ).Если он поддерживает ту же кодировку Unicode для исходных файлов и стандартного вывода, вы можете просто вставить его в файл.Например, моя система GNU / Linux использует UTF-8 для обоих, так что это прекрасно работает:

#include <iostream>

int main()
{
    std::cout << "cm²" << std::endl;
}
5 голосов
/ 28 октября 2010

Это не то, что C ++ может сделать самостоятельно.

Вам потребуется использовать определенную функцию вашей консольной системы.

Мне не известны какие-либо консоли или терминалы, которые реализуют суперскрипт. Хотя я могу ошибаться.

3 голосов
/ 01 апреля 2016

Я пытался выполнить эту задачу с целью создания решателя квадратного уравнения. Запись ax² внутри cout <<, удерживая клавишу ALT при наборе 253, отображается правильно только в исходном коде, НО НЕ в консоли. При запуске программы она отображалась в виде светлого прямоугольника вместо надстрочного индекса 2.

Кажется, простое решение этого вопроса - приведение целого числа 253 в виде символа, например ... (char)253.

Поскольку наш профессор отговаривает нас от использования «магических чисел», я объявил это как постоянную переменную ... const int superScriptTwo = 253; //ascii value of super script two.

Затем, когда я хотел, чтобы верхний индекс 2 появился в консоли, я преобразовал свою переменную как char, как это ... cout << "f(x) = ax" << (char)superScriptTwo << " + bx + c"; и он отображается отлично.

Возможно, даже проще создать его как char для начала, и не беспокоиться о его разыгрывании. Этот код также выводит суперскрипт 2 на консоль при компиляции и запуске в VS2013 на моем Lenovo под управлением Windows 7 ...

char ssTwo = 253;
cout << ssTwo << endl;

Я надеюсь, что кто-то найдет это полезным. Это мой первый пост в истории, поэтому я заранее извиняюсь, если случайно нарушил какие-либо протоколы переполнения стека за ответ на вопрос, опубликованный более 5 лет назад. Любое такое происшествие не было преднамеренным.

2 голосов
/ 28 октября 2010

Да, я согласен с Заном.

Базовый C ++ не имеет встроенных функций для печати надстрочных и подписных документов.Вам необходимо использовать любую дополнительную библиотеку пользовательского интерфейса.

0 голосов
/ 06 сентября 2016

Почему бы вам не попробовать ASCII?
Объявите символ и присвойте ему значение ASCII 253, а затем напечатайте символ.
Таким образом, ваш код должен выглядеть так:

char ch = 253;
cout<<"cm"<<ch;

Это определенно напечатает см 2 .

0 голосов
/ 11 октября 2015

Для суперскриптов или субскриптов необходимо использовать ascii значение буквы или цифры.

Например: суперскрипты 2 для x² нам нужно получить ascii value of super script of 2 (поищите в google) то есть - 253. Для ввода символа ascii вам нужно сделать alt + 253 здесь, вы можете написать любое число, но в данном случае это 253.

Например: - cout<<"x²";

Итак, теперь он должен отображать на черном экране.

...