Bonjour à tous,
Je crois que je fais une erreur basique mais je ne vois pas où?
je charge le tableau sais en saisissant un certain nombre de caractères par un clavier en terminant par 'C'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 char sais[50]; if(detectKb && !enSaisie) { //lecture 1er caractère du clavier lcd.backlight(); enSaisie = true; if(carLu == '0') sais[0] = 'O'; //remplacement de '0' par 'O' else sais[0] = carLu; afficMsgLcd(0,0,String(sais[0]),true); //affichage de caractère saisi sur le lcd detectKb=false; } if(detectKb && enSaisie){ //lecture complète du clavier caractère par caractère static uint8_t j=0; if(carLu != 'C'){ //jusqu'à la lettre 'C' j++; sais[j]=carLu; afficMsgLcd(j,0,String(sais[j]),false); detectKb=false; } else{ //fin de la saisie char saisiKb[j+2]; for(i=0;i<j+1;i++){ saisiKb[i]=sais[i]; //Serial.print(saisiKb[i]); Serial.println(sais[i]); } saisiKb[j+2]='\0'; enSaisie = false; j=0; gestionCommandes(saisiKb); detectKb=false; if(!enAffic) lcd.noBacklight(); } }
Ayant enregistré le nombre de caractères saisis en j, je crée un nouveau tableau char saisiKb[j+2];
Puis je tente de copier les j caractères du tableau sais dans le tableau saisiKb.
Je termine par le caractères '\0', puis j'appelle la procédure gestionCommandes en passant le tableau.
Or cela ne fonctionne pas car j'ai découvert dans l'affichage du Serial que les deux tableaux ne contiennent que des caractères NUL.
Merci d'éclairer ma lanterne..
Partager