Domanda

Sto lavorando su un progetto che utilizza un Arduino e come tale, sto leggendo da una porta seriale (che invia ints). Ho bisogno di scrivere questo, allora la comunicazione seriale ad un LCD, che prende un char*.

Ho bisogno di leggere diversi personaggi dalla porta seriale (due interi) in una stringa. Dopo che entrambi sono stati ricevuti, ho quindi bisogno di cancellare la stringa di prepararsi per i prossimi due caratteri.

TLDR : Come faccio ad aggiungere un int ad un char*, e quindi cancellare la stringa dopo che ha due caratteri?

È stato utile?

Soluzione

Un char è un singolo carattere, mentre un char * può essere un puntatore a un carattere o un puntatore al primo carattere di una stringa C, che è un array di caratteri terminati da un carattere nullo.

Non è possibile utilizzare un char per rappresentare un intero più lungo di 1 cifra, quindi ho intenzione di assumere hai fatto in realtà dire char *.

Se hai

char buffer[10];

è possibile impostare buffer ad una stringa che rappresenta un n int con sprintf

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

E quando hai finito con esso, è possibile cancellare la stringa con

sprintf(buffer, "");

La speranza che è ciò che stavi chiedendo, e buona fortuna!

Altri suggerimenti

Non è possibile leggere in un char *, si tratta di un puntatore. Si può leggere nella memoria a cui punta il puntatore, a condizione che punta a qualcosa di valido. Per quanto riguarda la compensazione, non è ovvio ciò che vuoi dire.

La linea di fondo è che è necessario inserire un codice vero e proprio che tenta di fare quello che vuoi, e chiedere su questo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top