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 :

Différence entre sprintf et printf


Sujet :

C

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Différence entre sprintf et printf
    Bonjour ,
    J'arrive pas a comprendre la difference entre sprintf et printf :""3,j aimerais bien que vous m expliquez le role de sprintf ?
    Merci d avance
    crdlt;

  2. #2
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Bonjour,
    les fonctions de la famille printf suivent une convention de nommage. Le f final signifie formated, on va manipuler une chaîne décrivant un format et éventuellement utiliser des paramètres pour créer une chaîne avec laquelle on va faire quelque chose.
    Les fonctions sont :

    • printf : la chaîne créée est envoyée sur la sortie standard stdout
    • fprintf : la chaîne créée est envoyée sur le flux passé en paramètre ; f comme FILE *
    • dprintf : la chaîne créée est envoyée dans un fichier dont un descripteur est passé en paramèrtre d comme file descriptor.
    • sprintf : la chaîne est envoyée dans une autre chaîne (de taille suffisante) passée en paramètre ; s comme string.
    • snprintf : la chaîne est envoyée dans une autre chaîne à concurrence d'une certaine taille, tout ça dans deux paramètres ; s pour string et n comme la taille


    Tu as exactement les mêmes fonctions préfixées par un v (comme variadic), les paramètres pris en compte par la chaîne de formattage sont passés sous forme de valist. Elles sont toutes normalisée par C11 sauf la version d qui est normalisée par POSIX.

    Tu as également la famille wprintf qui manipulent des wchar_t* au lieu de char*, comme wprintf, fwprintf et swprintf mais il n'y a pas dwprintf ou de snwprintf. Elles sont toutes normalisées par C11.

    Note qu'il existe aussi asprintf et vasprintf qui allouent la chaîne qui va recevoir la chaîne formattée. C'est une extension GNU.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Mercciii beaucouppp , euhh par contre c'est quoi a file descriptor ?

  4. #4
    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

    C'est le nom qu'on donne habituellement à la variable numérique associée au fichier physique. Généralement ça se crée ainsi
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // Déclaration du file descriptor
    int fd;
     
    // Association du file descriptor avec le fichier
    fd=open("fichier_choisi", flag_indiquant_mode_ouverture_choisi, eventuellement_les_droits_quand_on_crée_le_fichier);
     
    // Ecriture ou lecture selon son algo
    write(fd, ..., ...);
    read(fd, ..., ...);
     
    // Ou même..
    dprintf(fd, "Hello\n");
     
    // Fermeture fichier
    close(fd);
    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]

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Ah d'accord Merciii

Discussions similaires

  1. Différence entre un "bidouilleur" et un Pro ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 290
    Dernier message: 28/11/2011, 10h53
  2. Différences de perfos entre sprintf et echo
    Par gwinyam dans le forum Langage
    Réponses: 7
    Dernier message: 12/01/2011, 22h34
  3. Différence entre TCP, UDP, ICMP
    Par GliGli dans le forum Développement
    Réponses: 1
    Dernier message: 13/09/2002, 08h25
  4. Différences entre jmp, jz, jnz, etc
    Par christbilale dans le forum Assembleur
    Réponses: 3
    Dernier message: 05/07/2002, 15h09
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

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