Domanda

Sto scrivendo un pezzo di codice che si occupa di variabili matematiche e indici, e avrei bisogno di stampare e deponenti su un CLI, c'è una (possibilmente multipiattaforma) modo per farlo? Sto lavorando in vaniglia C ++.

Nota: Mi piacerebbe che questo sia cross-platform, ma dal momento che dalle prime risposte questo non sembra essere possibile sto lavorando sotto MacOS e Linux Ubuntu (così bash) .

Grazie

È stato utile?

Soluzione

Poiché la maggior parte CLI sono in realtà solo terminali (quelli abbastanza stupidi per lo più, ma a volte con il colore), l'unico modo cross-platform che abbia mai fatto questo è assegnando linee fisiche muliple per linea virtuale, come ad esempio:

        2
f(x) = x  + log x
               2

Non è l'ideale ma è probabilmente il meglio che si vuole ottenere senza interfaccia grafica.

A seguito di informazioni extra per quali piattaforme siete interessati principalmente in:

Con Ubuntu almeno, corre gnome-terminal in UTF-8 modalità di default il codice seguente mostra come generare gli apici e pedici:

#include <stdio.h>

static char *super[] = {"\xe2\x81\xb0", "\xc2\xb9", "\xc2\xb2",
    "\xc2\xb3", "\xe2\x81\xb4", "\xe2\x81\xb5", "\xe2\x81\xb6",
    "\xe2\x81\xb7", "\xe2\x81\xb8", "\xe2\x81\xb9"};
static char *sub[] = {"\xe2\x82\x80", "\xe2\x82\x81", "\xe2\x82\x82",
    "\xe2\x82\x83", "\xe2\x82\x84", "\xe2\x82\x85", "\xe2\x82\x86",
    "\xe2\x82\x87", "\xe2\x82\x88", "\xe2\x82\x89"};

int main(void) {
    int i;
    printf ("f(x) = x%s + log%sx\n",super[2],sub[2]);
    for (i = 0; i < 10; i++) {
        printf ("x%s x%s ", super[i], sub[i]);
    }
    printf ("y%s%s%s z%s%s\n", super[9], super[9], super[9], sub[7], sub[5]);
    return 0;
}

I super e sub char * array sono le codifiche UTF-8 per i punti di codice Unicode per apici numerici ei pedici (vedi qui ). Il dato programma emetterà la mia formula dall'alto (su una riga invece di tre), poi un'altra linea di prova per tutte le scelte e una y-super-999 e Z-sub-75 in modo da poter vedere quello che sembrano.

MacOS non sembra usare gnome-terminal come un programma terminale, ma i riferimenti qui e qui sembrano indicare il terminale standard capisce UTF-8 (o si potrebbe scaricare e installare gnome-terminal come ultima risorsa).

Altri suggerimenti

  

avrei bisogno di stampare e deponenti su un CLI, c'è un modo cross-platform per farlo?

Solo se si dispone di un terminale in grado Unicode, che è lungi dall'essere garantita. Unicode definisce un numero limitato di Sub e ‘caratteri di compatibilità’ apice, non si può certo utilizzarlo su qualsiasi vecchia lettera:

₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓ
⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿⁱ

Anche allora sei affidamento sulla presenza di un glifo per esso nel font della console, che è anche lungi dall'essere garantita. Apice 2 e 3 sono suscettibili di esistere in quanto sono presenti in ISO-8859-1; gli altri potrebbero non funzionare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top