Pergunta

Eu estou trabalhando em um projeto usando um Arduino e, como tal, estou lendo a partir de uma porta serial (que envia ints). Eu preciso, em seguida, escrever esta comunicação serial para um LCD, o que leva um char*.

Eu preciso ler vários personagens da porta serial (dois inteiros) em uma string. Depois de ambos terem sido recebidas, então eu preciso limpar a corda para se preparar para os próximos dois caracteres.

TLDR : Como faço para anexar um int a um char* e desmarque a string depois que ele tem dois personagens?

Foi útil?

Solução

Um char é um único carácter, ao passo que um char * pode ser um apontador para um carácter ou um ponteiro para o primeiro carácter de uma cadeia C, a qual é uma matriz de caracteres terminados por um caractere nulo.

Você não pode usar um char para representar um número inteiro maior do que 1 dígito, então eu vou assumir que você fez de fato caractere médio *.

Se você tiver

char buffer[10];

então você pode definir buffer a uma cadeia que representa um int n com sprintf

sprintf(buffer, "%d", n);

E quando você é feito com ele, você pode limpar a corda com

sprintf(buffer, "");

A esperança é o que você estava pedindo, e boa sorte!

Outras dicas

Você não pode ler em um char *, é um ponteiro. Você pode ler na memória apontada pelo ponteiro, desde que aponta para algo válido. Quanto à compensação, não é óbvio o que você quer dizer com isso.

A linha inferior é que você precisa postar algum código real que as tentativas de fazer o que quiser, e perguntar sobre isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top