Anexando ints para char * e desmarcando
-
12-09-2019 - |
Pergunta
Eu estou trabalhando em um projeto usando um Arduino e, como tal, estou lendo a partir de uma porta serial (que envia int
s). 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?
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.