Ir ao conteúdo

Posts recomendados

Postado

Olá.

Gostaria de fazer um programa que lida com fórmulas químicas. Para isso, preciso exibir na tela fragmentos de texto domo "H2O", onde o 2 está subscrito.

Gostaria de saber como é possível fazer isso em c.

 

Agradeço desde já.

Joel.

Postado

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
Postado
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

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!