IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Comment fonctionne cette syntaxe pour constituer un String?


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut Comment fonctionne cette syntaxe pour constituer un String?
    Bonjour à tous,
    En puisant dans les ressources du Net pour utiliser "Pushbullet", je suis tombé sur cette syntaxe que j'ai du mal à interpréter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String messagebody = R"({"type": "note", "title": "Push du ESP 32", "body": ")" + message + R"("})";
    Je vois que c'est pour envoyer un message JSON, mais c'est le 'R' que je ne pige pas.
    Si quelqu'un peut éclairer la lanterne. Merci.

  2. #2
    Membre chevronné Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2021
    Messages : 346
    Par défaut
    Normalement, pour inclure des guillemets doubles (") dans une chaîne de caractères en C++, vous devez les échapper avec un antislash, comme ceci : ".
    Avec R"(...), vous pouvez inclure des guillemets doubles directement, sans les échapper. Tout ce qui est entre R"( et )" est considéré comme partie de la chaîne, y compris les retours à la ligne et les guillemets doubles.
    L'utilisation de R rend donc le code plus lisible et plus simple à écrire, surtout quand vous travaillez avec des chaînes complexes comme le JSON.

  3. #3
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut
    Merci pour cette réponse;
    C'est à dire que si on n'utilise pas le R"(...), je devrais écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String messagebody = "{\"type\": \"note\", \"title\": \"Push du ESP 32\", \"body\": \"}" + message  + "{\"}\r\n";
    à la place de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String messagebody = R"({"type": "note", "title": "Push du ESP 32", "body": ")" + message + R"("})";
    Est-ce exact?

    Ton explication est bonne. Mais où puis-je trouvé cela sur le Net car j'ai l'impression que je m'emmèle un peu vers la fin.

  4. #4
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut
    merci Jay M pour cette adresse. C'est impressionnant! Surtout pour maîtriser le sujet.

  5. #5
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    le R introduit ce qu'on appelle en C++ un Raw string literal ==> https://en.cppreference.com/w/cpp/la...string_literal

  6. #6
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    et si le JSON est constant, autant ne pas utiliser une String
    (message est statique dans le texte)

  7. #7
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut
    Et si le JSON est constant, autant ne pas utiliser une String
    (message est statique dans le texte)
    message est une variable en fonction des évènements; une notification est envoyée, donc différente à chaque fois. J'ai d'ailleurs un nouveau problème à résoudre (TIMEOUT) lorsque j'envoie des notifications les unes après les autres. Je lancerai une nouvelle demande discussion si je ne trouve pas seul la solution.
    Merci Jay M pour votre aide.

  8. #8
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    Citation Envoyé par mormic Voir le message
    message est une variable en fonction des évènements
    ah oui, j'avais mal vu les parenthèses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment lire cette syntaxe ?
    Par 17795 dans le forum Langage
    Réponses: 4
    Dernier message: 23/07/2011, 15h37
  2. [interp2] Comment fonctionne cette fonction ?
    Par rom3478 dans le forum MATLAB
    Réponses: 3
    Dernier message: 03/11/2010, 21h39
  3. Comment fonctionne cette machine?
    Par acacia dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 16/05/2008, 09h50
  4. [USB]Comment utiliser cette API pour la communication USB
    Par fouguasse dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 19/08/2007, 18h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo