Réception d'une chaine de caractère en c
tibo07130
-
tibo07130 Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
tibo07130 Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je conçois un programme pour envoyer et recevoir des chaînes de caractères. Pas de problème pour envoyer une chaine de caractères mais j'ai un souci pour la recevoir. Je reçois seulement un caractère à l'aide de cette fonction :
char recevoir_car()
{
TXEN=0;
CREN=1;
while (RCIF!=1); //et on bascule le PIC en recepteur
return (RCREG);
et voici ma fonction qui pose problème pour recevoir la chaine de car :
const unsigned char* recevoir_ch()
{
int i=0;
do
{
chaine[i] = recevoir_car();
i++;
}
while(recevoir_car() != '\0'); // On boucle tant qu'on n'est pas arrivé à l'\0
i--; // On retire 1 caractère de long pour ne pas compter l'\0
return *chaine;
}
vous voyez un problème quelque part?
merci d'avance.
Je conçois un programme pour envoyer et recevoir des chaînes de caractères. Pas de problème pour envoyer une chaine de caractères mais j'ai un souci pour la recevoir. Je reçois seulement un caractère à l'aide de cette fonction :
char recevoir_car()
{
TXEN=0;
CREN=1;
while (RCIF!=1); //et on bascule le PIC en recepteur
return (RCREG);
et voici ma fonction qui pose problème pour recevoir la chaine de car :
const unsigned char* recevoir_ch()
{
int i=0;
do
{
chaine[i] = recevoir_car();
i++;
}
while(recevoir_car() != '\0'); // On boucle tant qu'on n'est pas arrivé à l'\0
i--; // On retire 1 caractère de long pour ne pas compter l'\0
return *chaine;
}
vous voyez un problème quelque part?
merci d'avance.
A voir également:
- Réception d'une chaine de caractère en c
- Caractère ascii - Guide
- Accusé de reception gmail - Guide
- Problème de réception tv pas de signal aujourd' hui - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
3 réponses
Bonjour,
Ta variable "chaine" est définie où ? Et comment ?
Ce n'est pas : return *chaine; mais return chaine; qu'il faut mettre.
Cdlt,
Ta variable "chaine" est définie où ? Et comment ?
Ce n'est pas : return *chaine; mais return chaine; qu'il faut mettre.
Cdlt,
Bonjour,
Y'a du boulot: plusieurs erreurs !
ou
https://www.emit-fr.com/
Y'a du boulot: plusieurs erreurs !
char chaine[TAILLE_MAX]; unsigned short recevoir_ch(void) { int i=0; do { chaine[i] = recevoir_car(); i++; } while(chaine[i-1] != '\0'); // On boucle tant qu'on n'est pas arrivé à l'\0 i--; // On retire 1 caractère de long pour ne pas compter l'\0 return i; }
ou
void main(void) { char chaine[TAILLE_MAX]; recevoir_ch(chaine); } unsigned short recevoir_ch(char *c) { int i=0; do { *c = recevoir_car(); i++; } while(*c++ != '\0'); // On boucle tant qu'on n'est pas arrivé à l'\0 i--; // On retire 1 caractère de long pour ne pas compter l'\0 return i;
https://www.emit-fr.com/
fiddy : j'avais définie chaine comme pointeur... j'ai un peu de mal peut tu corriger mon programme pour qu'on en discute?
emit-fr : je ne comprend pas pourquoi tu retourne i... i est juste un compteur pour moi et ce qui m'interesse c'est plutot ce qu'il y a dans chaine...
cette fonction me permet de lire des trames de caractère en liaison série...
emit-fr : je ne comprend pas pourquoi tu retourne i... i est juste un compteur pour moi et ce qui m'interesse c'est plutot ce qu'il y a dans chaine...
cette fonction me permet de lire des trames de caractère en liaison série...