Maison  >  Article  >  développement back-end  >  Quelle est la différence entre printf, sprintf et fprintf en langage C

Quelle est la différence entre printf, sprintf et fprintf en langage C

青灯夜游
青灯夜游original
2019-01-25 17:02:0113856parcourir

printf, sprintf et fprintf sont toutes des instructions de sortie en langage C, qui génèrent des chaînes formatées. Alors, quelles sont les différences entre les trois ? Dans cet article, nous allons en apprendre davantage sur printf, sprintf et fprintf et présenter les différences entre eux. J'espère que cela sera utile à tout le monde.

Quelle est la différence entre printf, sprintf et fprintf en langage C

printf

La fonction printf est utilisée pour sortir du texte sur le périphérique de sortie standard (console stdout ) (chaîne/flux de caractères) ou valeur.

Syntaxe de base

int printf(const char * format,...);

Explication :

format fournit le format d'une chaîne de texte qui sera utilisée sur le périphérique de sortie en utilisant %s, %d, %f Attendez que le spécificateur de format soit affiché.

... Fournit une liste de paramètres qui doivent être générés.

Le type de retour int renvoie le nombre total de caractères affichés à l'écran.

Exemple :

#include<stdio.h> 
int main() 
{ 
   printf("hello geeksquiz"); 
    printf("\n"); 
   int  a=2;
   printf("%d",a); 
   return 0; 
}

Sortie :

Quelle est la différence entre printf, sprintf et fprintf en langage C

sprintf

sprintf est utilisé pour envoyer (copier) du texte formaté (flux de chaînes/caractères) vers un tampon de chaîne.

Syntaxe de base

int sprintf(char * str,const char * format,...);

Description :

char * str  : Un tableau de caractères dans lequel le texte formaté sera envoyé (copié) .

format fournit du texte formaté à l'aide de spécificateurs de format.

... Fournissez une liste de paramètres qui doivent être générés.

● Le type de retour int renvoie le nombre total de caractères copiés (envoyés) dans char * str.

Exemple :

#include <stdio.h>
int main()
{
    char str[100];
    int n;
    
    n=sprintf((char*)str,"我的名字是%s, I am %d years old.","Mike",23);
    
    printf("Text is: %s\n",str);
    printf("Total number of copied characters are: %d\n",n);
    return 0;
}

Explication : sprintf stocke la chaîne dans le tampon de caractères spécifié, puis l'affiche sur la console stdout via printf.

Sortie :

Quelle est la différence entre printf, sprintf et fprintf en langage C

fprintf

fprintf est utilisé pour afficher des caractères dans un contenu de la chaîne du fichier, mais pas de sortie sur la console stdout.

Syntaxe de base :

int fprintf(FILE * fptr,const char * str,...);

Description :

fptr : Il s'agit d'un pointeur vers l'objet FILE qui identifie le flux.

str : Il s'agit d'une chaîne C contenant le texte à écrire dans le flux stream.

Exemple :

#include<stdio.h> 
int main() 
{ 
    int i, n=2; 
    char str[50]; 
  
    //open file sample.txt in write mode 
    FILE *fptr = fopen("sample.txt", "w"); 
    if (fptr == NULL) 
    { 
        printf("无法打开文件"); 
        return 0; 
    } 
  
    for (i=0; i<n; i++) 
    { 
        puts("输入名称"); 
        gets(str); 
        fprintf(fptr,"%d.%s\n", i, str); 
    } 
    fclose(fptr); 
  
    return 0; 
}

Sortie :

Quelle est la différence entre printf, sprintf et fprintf en langage C

Dans sample.txt :

Quelle est la différence entre printf, sprintf et fprintf en langage C

Résumé :

La différence entre printf, sprintf et fprintf est la suivante : leurs cibles de sortie sont différentes. printf génère un flux de caractères de données sur la console stdout ; sprintf envoie le flux de caractères de données au tampon de caractères spécifié ; fprintf est utilisé pour afficher le contenu de la chaîne dans un fichier ;

Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn