Partage
  • Partager sur Facebook
  • Partager sur Twitter

question de caractere

Sujet résolu
    27 juin 2007 à 14:24:58

    j'ai appris au debut du language C que nous devions utiliser %ld pour afficher des chiffre.
    Dans la deuxieme partie du cours, j'ai appris a utiliser %s pour affichier du texte. On explique dans cette partie que le texte est principalement formé de chiffre (l'OS convertit tout en chiffre).
    Ma question est la suivante: pourquoi ne pourrais t-on pas, toujour utiliser %s pour afficher du texte , des chiffre, etc.. ? (en fait, j'aimerais savoir si on a vraiment besoin de connaitre %ld!!!)


    Merci de vos reponse.
    • Partager sur Facebook
    • Partager sur Twitter
      27 juin 2007 à 14:41:12

      Salut,

      Oui, il faut connaître les différents formats de printf.
      Non, on ne peut pas utiliser %s pour tout.
      Un type de variable => un format.
      • Partager sur Facebook
      • Partager sur Twitter
        27 juin 2007 à 14:42:40

        mhhh je tenterais une réponse dans le genre... parce que (et là après on met plein de choses compliquées de physique quantique auxquelles seules 25 personnes dans le monde comprennent à peu près ce que ça veut dire :p ).
        • Partager sur Facebook
        • Partager sur Twitter
          27 juin 2007 à 14:47:03

          Salut,

          D'abord, la réponse rapide et péremptoire à ta question : oui, tu as besoin de connaître les différents codes de format de printf() et des fonctions assimilées (ou du moins, de savoir où tu peux les trouver si tu les oublies), parce que non, tu ne peux pas utiliser %s comme code "générique".

          Les valeurs des variables, quel que soit le type (char, int, long, float, etc.) sont toujours stockées sous forme numérique. Le code de format que tu passes à printf() (et les fonctions assimilées) sert à indiquer comment interpréter cette valeur numérique.

          Un exemple (simpliste et naïf), en supposant que la variable i contient la valeur 65 (valeur pas tout à fait prise au hasard ^^ ) :
          /* Interpréter la valeur de i comme une valeur entière */
          printf("i = %d\n", i); /* affiche i = 65 */

          /* Interpréter la valeur de i comme le code d'un caractère dans la table ASCII */
          printf("i = %c\n", i); /* affiche i = A */

          /* Interpréter la valeur de i comme l'adresse d'une variable de type char */
          printf("i = %s\n", i); /* affiche la chaîne contenue dans le tableau de chars situé à l'adresse 65 */
          • Partager sur Facebook
          • Partager sur Twitter
            27 juin 2007 à 15:02:59

            Merci a tous de votre reponse.
            • Partager sur Facebook
            • Partager sur Twitter

            question de caractere

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown