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

Contribuez Discussion :

Deux rubriques à proposer [FAQ]


Sujet :

Contribuez

  1. #1
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 449
    Points
    19 449
    Par défaut Deux rubriques à proposer
    Bonsoir.

    Voilà, je voulais vous proposer d'intégrer deux rubriques à la FAQ C dans la partie Entrées/Sorties.

    Citation Envoyé par 1ère rubrique
    Quels sont les principales séquences d'échappement (ou caractères spéciaux) ?


    • \n : saut de ligne
    • \t : tabulation
    • \b : placement du curseur
    • \r : retour chariot (carriage return)
    • \f : saut de page
    • \a : signal sonore
    • \\ : antislash
    Citation Envoyé par 2nde rubrique
    Quels sont les différents formats à utiliser avec printf et scanf ?

    Les formats de sortie avec printf sont les suivants :

    • %d, %i : nombre entier décimal
    • %u : nombre entier non signé (unsigned)
    • %o : nombre entier octal
    • %x : nombre entier hexadécimal (minuscule)
    • %X : nombre entier hexadécimal (majuscule)
    • %c : caractère ASCII (type char)
    • %f : nombre à virgule flottante
    • %e, %E : nombre à virgule flottante au format exponentiel
    • %g, %G : nombre au format %f ou sinon %e lorsque l'exposant est inférieur à -4
    • %s : chaîne de caractères
    • %p : pointeur
    • %n : pointeur (nombre de caractères déjà donnés)

    Remarque :

    Selon la man page de printf :

    - Les formats %d à %X concernent les variables de type int. Pour les variables de type short, il faut ajouter un h après le % (exemple : %hd) et pour les variables de type long, il faut ajouter, il faut ajouter un l après le % (exemple : %ld).
    - Les formats %f à %LG concernent les variables de type float. Pour les variables de type double, il faut ajouter un l après le % (exemple : %lf).

    Il se peut toutefois que vous ayez un Warning du genre "ISO C90 does not support the `%lf' printf format". En effet les formats %lf (nombre à virgule de type double), %hhd (char signé) et %hhu (char non signé) n'existent qu'en C99.

    Les formats de saisie à utiliser avec scanf sont les suivants :


    • %d, %i : entier décimal de type int
    • %hd : entier décimal de type short
    • %ld : entier décimal de type long
    • %u : entier décimal de type int non signé (unsigned)
    • %hu : entier décimal de type short non signé (unsigned short)
    • %lu : entier décimal de type long non signé (unsigned long)
    • %o : entier octal de type int
    • %ho : entier octal de type short
    • %lo : entier octal de type long
    • %x : entier hexadécimal de type int
    • %hx : entier hexadécimal de type short
    • %lx : entier héxadécimal de type long
    • %c : caractère ASCII (type char)
    • %f : nombre à virgule flottante de type float
    • %lf : nombre à virgule flottante de type double
    • %e, %E : nombre à virgule flottante au format exponentiel de type float
    • %le, %LE : nombre à virgule flottante au format exponentiel de type double
    • %g, %G : nombre à virgule flottante au format décimal ou exponentiel (lorsque l'exposant est inférieur à -4) de type float
    • %lg, %LG : nombre à virgule flottante au format décimal ou exponentiel (lorsque l'éxposant est inferieur à -4) de type double
    • %s : chaîne de caractères
    • %p : pointeur
    • %n : aucune donnée utilisateur (montre le nombre de caractères déjà lus)
    N'hésitez pas, si vous acceptez ces rubriques, à les modifier à votre guise (correction, expression, organisation, ...).

    Cordialement,
    Idriss.

  2. #2
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Il manque un caractère d'échappement -> '\v' (et peut-être d'autres ^^ )
    Pour scanf %i n'est pas complètement bon :p
    Et il manque des formateurs aussi.
    Plus tu pédales moins fort, moins t'avances plus vite.

  3. #3
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    J'ai ajouté la première rubrique : Quel est le rôle de \ dans une chaîne de caractères ?

    Je n'ai pris la deuxième rubrique parce qu'il faut vraiment avoir choisi le pire des cours de C pour ne pas connaître ces spécifications. On peut peut-être aussi dire la même chose de la première mais au moins la question était déjà plus ou moins traitée par une entrée existante alors j'ai juste modifié cette entrée.

    Il manque un caractère d'échappement -> '\v' (et peut-être d'autres ^^ )
    Ça je pense que c'est pas vraiment grave .

  4. #4
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 449
    Points
    19 449
    Par défaut
    Bonjour.

    Tout d'abord merci de vos réponses.

    Citation Envoyé par Melem Voir le message
    Je n'ai pris la deuxième rubrique parce qu'il faut vraiment avoir choisi le pire des cours de C pour ne pas connaître ces spécifications.
    C'est vrai ... l'intérêt que j'y trouvait est d'avoir une liste la plus complète possible (c'était pas encore le cas mais ça aurait pu être complété/corrigé au fur et à mesure). En effet, les cours sur internet que j'ai vus en ont une liste plus ou moins remplie avec les formats les plus courants mais on ne les trouve pas tous. Cependant, il est vrai que la liste de ce tuto (que je viens de voir) est suffisante (et puis il y a toujours les man pages).

    Citation Envoyé par Pouet_forever Voir le message
    Pour scanf %i n'est pas complètement bon
    Pourrait-tu m'indiquer ce qui n'est pas bon ? Le fait que %d et %i sont équivalents ? Le fait que j'ai oublié de préciser que ce sont des entiers décimaux signés ? Je ne suis pas sûr de savoir ce que tu penses par là ...

    Cordialement,
    Idriss

  5. #5
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Il ne prend pas uniquement les nombres décimaux, mais aussi les nombre héxa et octaux
    Tiré de la page de man :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    i :           correspond  à  un  entier  éventuellement signé. Le
                  pointeur suivant doit être du type int *.  L'entier
                  est en base 16 (héxadécimal) s'il commence par `0x'
                  ou `0X', en base 8 (octal)  s'il  commence  par  un
                  `0',  et  en  base  10 sinon.  Seuls les caractères
                  correspondants à la base concernée sont utilisés.
    Plus tu pédales moins fort, moins t'avances plus vite.

  6. #6
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 449
    Points
    19 449
    Par défaut
    Merci de la précision ... j'aurais du regarder la man page de scanf de plus près (j'ai surtout regardé un bouquin et la man page de printf).

    Cordialement,
    Idriss

  7. #7
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    On peut trouver la liste des codes d'échappement classiques ici, entre autres.

    Il manque notamment :
    • \" : Double quotation mark
    • \v : Vertical tab
    • \' : Single quotation mark
    • \? : Literal question mark

    Le problème des guillemets est aussi problématique que le "\\", et quel que soit le système d'exploitation.

    Vu qu'il n'en manque que quatre, autant les ajouter à la FAQ...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  8. #8
    Membre régulier Avatar de JulieCarree
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 50
    Points : 94
    Points
    94
    Par défaut
    Bonjour,

    on peut trouver les options de sorties formatées pour printf aussi dans le 'GNU C Library Manual' , ici http://www.gnu.org/software/libc/man...ut-Conversions in english .
    "if it quacks like a duck then it's a duck"

Discussions similaires

  1. [WD18] Afficher dans une colonne deux rubriques
    Par hicham-dj dans le forum WinDev
    Réponses: 4
    Dernier message: 20/03/2014, 14h29
  2. [Spip] Afficher deux rubriques
    Par stade13 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 15/03/2012, 12h25

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