Ir ao conteúdo
  • Cadastre-se

C Como usar subscrito no printf?


Posts recomendados

Com printf não tem como. O printf usa uma string de char's, que são apenas 8 bits cada um, pensado apenas para ASCII e semelhantes. Para isso, deve usar uma função que consiga imprimir caracteres com mais de 8 bits de tamanho (UTF-8) e um console que consiga mostrar esses caracteres.

 

Se estiver em Unix é bem tranquilo, acho que já é o padrão o UTF-8 mesmo, no Windows pode dar mais trabalho:

 

#include <stdio.h>
#include <wchar.h>
#include <locale.h>

int main(int argc, char** argv)
{
    setlocale(LC_CTYPE, "");

	// modo 1, copiando e colando de outro lugar, ou se o teclado tiver a tecla
    wchar_t *h2o = L"H₂O";
    wprintf(L"%ls\n", h2o);

	// modo 2, usando o código do caractere
    wprintf(L"H%lcO\n", 0x2082);

	// modo 3, imprimindo o dois subscrito por uma string
    wchar_t doisSubscrito[2];
    doisSubscrito[0] = 0x2082;
    doisSubscrito[1] = 0;
    wprintf(L"H%lsO\n", doisSubscrito);

    return 0;
}

Saída:

dudaskank@dudaskank-VirtualBox ~ $ gcc -o teste-wchar teste-wchar.c 
dudaskank@dudaskank-VirtualBox ~ $ ./teste-wchar 
H₂O
H₂O
H₂O

 

Links úteis:

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Em 23/09/2019 às 15:23, dudaskank disse:

Se estiver em Unix é bem tranquilo, acho que já é o padrão o UTF-8 mesmo, no Windows pode dar mais trabalho

 

Unicode e o bloco de expoentes e índices são o caminho. Atente para os links postados acima por @dudaskank

wchar.h e locale.h estão disponíveis em windows e Linux. Mas escrever na console é sempre um pesadelo a menos que se contente com os subscritos 2 e 3, eu acho. Mudar a página de código para 65001

Em especial se você tenta gravar isso em algum lugar usando FILE* ou um Handle, ou se coloca seu comando que ia para a console em um | por exemplo para tentar classificar --- tipo programa | sort | less.

 

Recomendo muito evitar isso. Isso já foi tratado com sucesso em outros meios, como e-mail, XML, HTML e tal. É muito mais simples gerar HTML e abrir no browser que mostra qualquer coisa...

 

Se precisar insistir nisso, antes de qualquer coisa muda a fonte da console do windows --- se estiver usando windows --- para alguma fonte True Type. Mas entenda que se você muda de computador ou envia seu programa para alguém.. já era. Mais uma razão para usar o navegador, ou XML, ou HTML...

 

WEBGL por exemplo é bem simples e foi feito com esse objetivo: escrever fórmulas e equações na tela. Escrevi algumas coisas com isso mas não tem nessa máquina. Escreva de novo se tiver interesse e posso postar aqui.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...