Bonjour à tous,
Je butte sur une incompréhension de ma part, certainement sur le langage C++:
Après avoir chargéJe crée une routine d'écriture de fichier:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 #include "FS.h" #include <SPIFFS.h>puis pour y accéder j'ai une autre routine:
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 //***************** Ecriture SPIFFS ********************************** void ecritureFichier(fs::FS &fs, const char *dir, const char *message){ sBt.printf("Ecriture du fichier: %s\r\n", dir); File fic = fs.open(dir, FILE_WRITE); if(!fic){ sBt.println("Pas de fichier"); return; } if(fic.print(message)){ sBt.println("Fichier ecrit"); } else { sBt.println("Erreur d'ecriture"); } fic.close(); }Là j'obtiens un message positionné sur la contenu du fichier 'al' à l'appel de la procédure d'écriture:
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 //*************Programmation alarme journalière par bluetooth************** void enregAlarmJour(char *al){ if(!(al[2]==':' && al[5]=='-')){ sBt.println(msg[3]); return; } hAlarmJ= (al[0]-ASCII0) * 10 + (al[1]-ASCII0); //conversion ASCII en int mAlarmJ= (al[3]-ASCII0) * 10 + (al[4]-ASCII0); msgAlarmJ=""; for(int i=6;i<LGMSG;i++){ if(al[i]=='\n') break; msgAlarmJ += al[i]; } msgAlarmJ.trim(); char rep; do{ sBt.println("Enregistrement ? O/N"); while(!sBt.available()){} rep=sBt.read(); }while(!(rep=='o' || rep=='O' || rep=='n' || rep=='N')); if(rep=='o' || rep=='O'){ ecritureFichier(SPIFFS,"/AlarmJ.txt",al); delay(1000); } }Je ne comprends pas ce message. Pourquoi dans la fonction d'écriture la variable 'message' est déclarée 'const' ?ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
Merci d'une aide
Michel
Partager