Insérer 2 variables à la suite dans la même fonction

Bonsoir à tous !

Je sollicite une fois de plus votre aide pour résoudre un petit soucis sur lequel je bloque :

Dans une fonction ( P.displayText ) je dois insérer 2 variables à la suite ( hour et minute )

J'ai testé :

P.displayText(hour + ":" + minute, CENTER, 0, 0, PRINT, NO_EFFECT);

P.displayText(hour && ":" && minute, CENTER, 0, 0, PRINT, NO_EFFECT);

Le premier compile correctement mais n'affiche rien et le 2e met l'erreur suivante :

no matching function for call to 'MD_Parola::displayText(bool, textPosition_t, int, int, textEffect_t, textEffect_t)'

Merci :slight_smile:

Je suppose que "hour" et "minute" sont des variables de type String? Peut-être les concaténer avant?

Je suppose que "hour" et "minute" sont des variables de type String? Peut-être les concaténer avant?

Salut !

Non, les variables "hour" et "minutes" sont de type int et contiennent respectivement une valeur comprise entre 0-11 et 0-60

Je ne sais pas comment concaténer, je vais me renseigner... Tu viens de m'apprendre un truc :

Merci !

http://www.cjoint.com/data3/FLudquYX8kc_ScreenShot-483.jpg

J'ai du mal à comprendre où ça pose problème...

Bonjour,

Il faut que tu convertisses tes int en chaine de caractères.
Par exemple avec sprintf

    char str[20];
    sprintf(str,"%d:%02d",hour,minutes);
    P.displayText(str, CENTER, 0, 0, PRINT, NO_EFFECT);

La solution proposée par "kamill" est bien et est générique au langage C.

Dans le monde Arduino, tu pourrais faire :

P.displayText(String(hour)+":"+String(minutes), CENTER, 0, 0, PRINT, NO_EFFECT);

Cordialement.

Pierre

Bonjour !

Je commence à comprendre d'où vient le problème, mais une erreur persiste

J'ai testé le code P.displayText(String(hour)+":"+String(minutes), CENTER, 0, 0, PRINT, NO_EFFECT);
Qui donne cette erreur :

C:\Program Files (x86)\Arduino\libraries\MD_Parola\src/MD_Parola.h:1011:14: note: no known conversion for argument 1 from 'StringSumHelper' to 'char*'

Utilisation de la bibliothèque MD_Parola version 2.4 dans le dossier: C:\Program Files (x86)\Arduino\libraries\MD_Parola
Utilisation de la bibliothèque MD_MAX72XX version 2.6 dans le dossier: C:\Program Files (x86)\Arduino\libraries\MD_MAX72XX
Utilisation de la bibliothèque SPI version 1.0 dans le dossier: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI
exit status 1
no matching function for call to 'MD_Parola::displayText(StringSumHelper&, textPosition_t, int, int, textEffect_t, textEffect_t)'

Alors qu'avec

char str[20];
sprintf(str,"%d:%02d",hour,minutes);
P.displayText(str, CENTER, 0, 0, PRINT, NO_EFFECT);

L'"écran" affiche bien 13:37...

Mais au moins ça marche... Merci beaucoup à tous de m'avoir aidé :slight_smile:

Effectivement, certaines bibliothèques ne reconnaissent pas la structure String() ... . Vous avez raison d'utiliser "sprintf" car de toutes façons, c'est plus universel.

Cordialement.

Pierre