Question

Je travaille sur un projet en utilisant un Arduino et en tant que tel, je lis à partir d'un port série (qui envoie ints). Je dois alors écrire cette communication série à un écran LCD, qui prend char*.

Je dois lire plusieurs caractères du port série (deux entiers) dans une chaîne. Après que les deux ont été reçus, j'ai besoin alors d'effacer la chaîne pour préparer les deux caractères suivants.

TLDR : Comment puis-je annexera une int à un char*, puis désactivez la chaîne après deux caractères?

Était-ce utile?

La solution

Un caractère est un caractère unique, alors qu'un char * peut être un pointeur sur un caractère ou d'un pointeur vers le premier caractère d'une chaîne de C, qui est un tableau de caractères terminée par un caractère nul.

Vous ne pouvez pas utiliser char pour représenter un nombre entier supérieur à 1 chiffre, donc je vais supposer que vous avez en fait dire char *.

Si vous avez

char buffer[10];

vous pouvez définir buffer à une chaîne représentant un n int avec sprintf

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

Et quand vous avez terminé, vous pouvez effacer la chaîne avec

sprintf(buffer, "");

Je espère que ce que vous demandez, et bonne chance!

Autres conseils

Vous ne pouvez pas lire dans un char *, il est un pointeur. Vous pouvez lire dans la mémoire pointée par le pointeur, à condition qu'il pointe vers quelque chose de valable. En ce qui concerne la compensation, il est pas évident ce que vous entendez par là.

Bottom line est que vous devez poster un code réel qui tente de faire ce que vous voulez, et demander à ce sujet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top