Chciałbym mieć wyjście programu "cm " (cm do kwadratu).Superscript w wyjściu konsoli C++
Jak utworzyć indeks górny 2?
Chciałbym mieć wyjście programu "cm " (cm do kwadratu).Superscript w wyjściu konsoli C++
Jak utworzyć indeks górny 2?
Jak powiedział Zan, zależy to od tego, jakie kodowanie znaków obsługuje standardowe wyjście. Jeśli obsługuje kodowanie Unicode, możesz użyć kodowania ² (U+00B2). Jeśli obsługuje to samo kodowanie Unicode dla plików źródłowych i standardowego wyjścia, możesz po prostu osadzić je w pliku. Na przykład, mój GNU/Linux używa UTF-8 dla obu, tak to działa prawidłowo:
#include <iostream>
int main()
{
std::cout << "cm²" << std::endl;
}
Nie działa tylko dla Unicode. Na ISO-8859-1, ² to 'char (0xB2)'. Ponieważ mój system Windows używa tego do plików źródłowych i wyjścia konsoli, ja też mogę je osadzić bezpośrednio w moich plikach źródłowych. – MSalters
To nie jest coś, co C++ może zrobić samodzielnie.
Należy użyć określonej funkcji systemu konsoli.
Nie znam żadnych konsol ani terminali, które implementują super-skrypt. Może się mylę.
To zależy od dostępnych znaków i używanego kodowania. Z [UTF-8 wszędzie] (http://utf8everywhere.org/) jest to możliwe. –
Tak, zgadzam się z Zanem.
Podstawowe C++ nie ma wbudowanej funkcjonalności do drukowania indeksów górnych i dolnych. Musisz użyć dowolnej dodatkowej biblioteki UI.
Technicznie rzecz biorąc, C++ nie ma funkcji wypisywania DOWOLNEJ konkretnej postaci. Nawet w przypadku podstawowych znaków alfanumerycznych, takich jak "a" lub "2", C++ nie ma funkcji pozwalającej na ich wyprowadzanie. Wszystko, co jest w stanie zrobić, to konwertowanie tych literałów na kody znaków, które są następnie interpretowane przez strumień wyjściowy, do którego są wysyłane. Zwykle powoduje to wyświetlenie "a" lub "2" na ekranie, ale z uwagi na dziwną konsolę i/lub system czcionek można uzyskać wszystko. –
dla super-skryptów lub sub skryptów trzeba użyć wartości ASCII litery lub cyfry.
Np .: Super skrypty 2 dla x2 musimy uzyskać ascii value of super script of 2
(wyszukiwanie w Google), czyli - 253
. Aby wpisać znak ASCII, musisz w tym miejscu wpisać alt + 253
, możesz wpisać dowolną liczbę, ale w tym przypadku 253.
Np: - cout<<"x²";
Więc teraz powinno wyświetlać x²
na czarnym ekranie.
Próbowałem wykonać to zadanie w celu wykonania równania kwadratowego. Zapisywanie ax²
wewnątrz cout <<
przez przytrzymanie klawisza ALT podczas wpisywania 253 wyświetlanego poprawnie tylko w kodzie źródłowym, ale NIE w konsoli. Podczas działania programu wyglądał on jak jasno kolorowy prostokąt zamiast indeksu górnego 2.
Prostym rozwiązaniem tego problemu wydaje się być rzutowanie liczby całkowitej 253 jako znaku, tak ... (char)253
.
Ponieważ nasz profesor zniechęca nas do używania "magicznych liczb", zadeklarowałem go jako zmienną stałą ... const int superScriptTwo = 253; //ascii value of super script two
.
Następnie, gdzie chciałem odnośnikiem 2 pojawił się w konsoli, rzucam zmienną jako char
jak to ... cout << "f(x) = ax" << (char)superScriptTwo << " + bx + c";
i wyświetlać go doskonale.
Być może jest jeszcze łatwiej po prostu utworzyć go jako char
i nie martwić się jego rzutowaniem. Kod ten będzie również drukować super skrypt 2 do konsoli, gdy kompilowany i uruchomić w VS2013 na moim Lenovo z systemem Windows 7 ...
char ssTwo = 253;
cout << ssTwo << endl;
Mam nadzieję, że ktoś znajdzie to użyteczne. To jest mój pierwszy post, więc przepraszam z góry, jeśli przypadkowo naruszę jakiekolwiek protokoły Stack Overflow odpowiadające na pytanie opublikowane 5+ lat temu.Każde takie zdarzenie nie było zamierzone.
Dlaczego nie spróbujesz ASCII?
Zadeklaruj znak i nadaj mu wartość ASCII 253
, a następnie wydrukuj znak.
Twój kod powinien iść w ten sposób;
char ch = 253;
cout<<"cm"<<ch;
To na pewno wydrukować cm .
cout << "cm^2"; :) – dgnorton
Czy możesz wyprowadzać HTML i wyświetlać go w oknie, aktualizując AJAX? –