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.