Надстрочный код в выводе консоли C++

Я хотел бы, чтобы моя программа выводила " cm2" (см в квадрате).

Как сделать Надстрочный 2?

6 ответов


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

#include <iostream>

int main()
{
    std::cout << "cm²" << std::endl;
}

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

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

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


Я пытался выполнить эту задачу для квадратичной решатель уравнения. Пишу 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 для начала, и не беспокойтесь о его кастинге. Этот код также напечатает super script 2 на консоли при компиляции и запуске в VS2013 на моем Lenovo под управлением Windows 7...

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

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


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

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


для супер-скриптов или суб-скриптов вам нужно использовать значение ascii буквы или числа.

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

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

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


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

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

это определенно будет печатать cm2.