Comment puis-je écrire un % (escape)

Bonjour,

Sauf erreur de ma part, pour le \ permets (je ne sais pas en francais), d'afficher un catacrtere pour qu'il ne soit pris en compte dans une commande.....

J'ai ce code

snprintf(f,FIXSIZE,"%s%s%s%s%s%s%s%s%s%s%s%s%s%sp%s%s%s%s20%s",url.id, _imei, url.valid, coords.valid, url.lat, coords.lat, url.lon, coords.lon, url.speed, coords.speed, url.heading, coords.course, url.batt, batt, url.desc, url.gsmloc, url.time, coords.date, coords.hour);

J'ai besion qu'à la place de p, qu'il affiche le %, mais celui-ci n'a rien à voir avec le %s. Il faut qu'il soit concidéré comme un % comme le p.
Je dois aussi faire de même, ajouter un % avant le 20.

J'ai essayé de me mettre % à la place du p, mais ca semble ne pas fonctionner car le c suivant devient jaune (sur sublime)

Comment faire un "escape" de %, dans ce cas?

"%%"

ou

"%c", '%'

Ne pas confondre les séquences d'échappement que l'on peut utiliser sur toute chaîne de caractère, afin d'y insérer un caractère spécial, et les règles de formatage spécifiques à la fonction printf, dont le marqueur est le caractère %.

D'accord, mais je ne vois pas comment faire.

Faudrait que je fasse un truc du genre

snprintf(f,FIXSIZE,"%s%s%s%s%s%s%s%s%s%s%s%s%s%s",'%',"%s%s%s%s20%s",url.id, _imei, url.valid, coords.valid, url.lat, coords.lat, url.lon, coords.lon, url.speed, coords.speed, url.heading, coords.course, url.batt, batt, url.desc, url.gsmloc, url.time, coords.date, coords.hour);

J'ai aussi essayé ceci, mais sans succes

snprintf(f,FIXSIZE,"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%%s%s%s%s20%s",url.id, _imei, url.valid, coords.valid, url.lat, coords.lat, url.lon, coords.lon, url.speed, coords.speed, url.heading, coords.course, url.batt, batt, url.desc, url.gsmloc, url.time, coords.date, coords.hour);
snprintf(f,FIXSIZE,"%s%s%s%s%s%s%s%s%s%s%s%s%s%s %% %s%s%s%s20%s",url.id, _imei, url.valid, coords.valid, url.lat, coords.lat, url.lon, coords.lon, url.speed, coords.speed, url.heading, coords.course, url.batt, batt, url.desc, url.gsmloc, url.time, coords.date, coords.hour);

Ou alors, vu que tu sembles maîtriser à donf le %s

  char pourcentage[2] = "%";
...
  printf(".....%s.....", ...., pourcentage, ....);

Celle-là tu aurais pu la trouver toi-même :smiling_imp:

Je vous remercie et je suis désolé d'avoir vite posté mon message.
J'ai un autre petit problème qui m'enpeche de testé ceci

@bricoleai : en effet, j'avais pas pensé à ca :confused: :confused:

Merci beaucoup