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

C Discussion :

Printf question format


Sujet :

C

  1. #1
    Membre habitué
    Homme Profil pro
    root
    Inscrit en
    Janvier 2013
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : root

    Informations forums :
    Inscription : Janvier 2013
    Messages : 174
    Points : 144
    Points
    144
    Par défaut Printf question format
    Existe-t-il en C un moyen de faire un code du style:
    code rust:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print!("{var1} {var2} !", var1 = "world", var2 = "hello"); // affiche: hello world !
    code rust:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print!("{var2} {var1} !", var1 = "world", var2 = "hello"); // affiche: world hello !

    Définir le type pose pas de problème, j'aimerais juste pouvoir ajouter un nom/alias exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("%s.var1 %s.var2", var1, var2);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("%s.var1 %s.var2", var1 = variable1, var2 = variable2);

  2. #2
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Non. L'unique manière de spécifier les valeurs à formater est de respecter le même ordre pour les spécificateurs de format et pour les paramètres auxquels ils correspondent.

  3. #3
    Membre habitué
    Homme Profil pro
    root
    Inscrit en
    Janvier 2013
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : root

    Informations forums :
    Inscription : Janvier 2013
    Messages : 174
    Points : 144
    Points
    144
    Par défaut
    Je vois.
    Je devrais éviter de voir les news de langage ça décourage après

  4. #4
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Le C est né en 1970, Rust en 2010.

  5. #5
    Membre habitué
    Homme Profil pro
    root
    Inscrit en
    Janvier 2013
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : root

    Informations forums :
    Inscription : Janvier 2013
    Messages : 174
    Points : 144
    Points
    144
    Par défaut
    Oui, mais un printf v2 sous un autre nom aurait été la bienvenu, surtout après ses 40 ans.

  6. #6
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Ce n'est pas une question de forme : il est impossible d'implémenter ce comportement sans modifier la grammaire même du langage.

  7. #7
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    C'est possible en C......++

    Enfin presque Voir http://fmtlib.net/latest/index.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fmt::print("Hello, {name}! The answer is {number}. Goodbye, {name}.",
               "name"_a="World", "number"_a=42);

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Bktero Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fmt::print("Hello, {name}! The answer is {number}. Goodbye, {name}.",
               "name"_a="World", "number"_a=42);
    Amusant. Comme en Python (ex: print("Hello, %(name)s! The answer is %(number)d. Goodbye, %(name)s." % {"name" : "World", "number" : 42})...

    Sinon je suis d'accord avec Matt_Houston. En C, une fonction n'accepte pas de paramètre nommé. Ecrire un printf_v2 dans le style C++/Python/Rust obligerait à modifier ce fondement. Or le but premier du C est d'aller le plus vite possible. C'est un axiome tellement primordial qu'il ne fait aucune vérification de quoi que ce soit (comme par exemple un débordement de tableau). Rajouter alors cette possibilité qui tient plus du gadget qu'autre chose le ferait alors redescendre trop bas question performances. Attention, je ne dis pas que les gadgets ce n'est pas bien !!! Moi aussi j'aime Python pour ce qu'il peut faire en terme de syntaxe. Mais le but de ces deux langages n'est pas le même...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

Discussions similaires

  1. question concernant la fonction printf
    Par sousoi dans le forum C
    Réponses: 3
    Dernier message: 25/08/2010, 14h45
  2. Question sur Printf
    Par mino99 dans le forum C
    Réponses: 3
    Dernier message: 11/10/2008, 16h09
  3. Question sur printf()
    Par Toutankharton dans le forum C
    Réponses: 4
    Dernier message: 25/11/2006, 13h56
  4. Question de faisabilité
    Par lisarasu dans le forum CORBA
    Réponses: 3
    Dernier message: 14/05/2002, 11h26
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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