Fonction vsnprintf en c

Fonction vsnprintf en c

VSnprintf () est un type de fonction qui est utilisé pour imprimer le tableau de caractères à l'aide des données formatées dans les listes d'arguments. En termes simples, cette fonction écrit simplement les données déjà formatées qui sont stockées dans les arguments «Type» de la liste des variables dans une chaîne tampon. Cette fonction compose une chaîne si nous utilisons le même format que dans l'argument variable de la méthode printf (). Mais il utilise les éléments déjà identifiés à partir des arguments de la liste des arguments variables et stocke le résultat de la forme de la chaîne tampon en C qui est pointée par le pointeur du tableau où la sortie imprime dans les arguments. Il prend également la taille du tampon ou la capacité du tableau à remplir les chiffres en termes de caractères.

Procédure

Cet article discutera de la façon dont nous apprendrons le concept derrière les méthodes vsnprintf (). Il montrera également l'ordre dans lequel nous apprendrons la syntaxe de cette fonction avec la mise en œuvre de la fonction sur différents exemples. Enfin, nous conclurons notre sujet pour nous réviser ce que nous avons appris jusqu'à présent dans l'article concernant le sujet - vsnprintf ().

Syntaxe

La fonction vsnprintf est écrite et déclarée de la même manière que nous écrivons toute autre fonction. Mais la liste d'arguments pour cette fonction varie un peu. La fonction vsnprintf () avec sa liste d'arguments est donnée dans ce qui suit:

$ Int vsnprintf (char * array, size_length_array, const wchar_t * format, VA_ list args)

Nous discutons maintenant de l'exigence de chaque argument pour cette fonction une par une. Le premier argument est le pointeur qui pointe vers le tableau de type de données «char» où nous voulons imprimer la sortie. Le deuxième argument représente les caractères maximaux que le tableau peut stocker dedans. Le troisième argument représente le pointeur de format qui pointe vers le format auquel nous voulons imprimer la sortie. Et le dernier est «Va_list Args» qui est connu pour être un type qui contient les informations nécessaires sur les arguments variables des fonctions. Ici, il agit comme un pointeur qui pointe vers la liste des arguments.

Type de retour

Le type de retour de cette fonction est des entiers. Cette fonction renvoie les caractères si et seulement si le programme réussit sans compter les caractères nuls pour la terminaison. Il pourrait renvoyer une valeur négative en cas de défaillance du programme.

Exemple:

Nous initions la mise en œuvre de la fonction mentionnée précédemment, la fonction vsnprintf (), à l'aide de cet exemple. Nous implémentons cet exemple dans le Microsoft Visual Studio dans le langage de programmation C. La fonction vsnprintf () est utilisée pour écrire / imprimer la liste d'argument de variable formatée sur le tableau ou la chaîne tampon. Ainsi, nous créons d'abord une liste d'arguments variables dans cet exemple, puis utilisons cette liste d'arguments pour imprimer un tableau de type de données «char».

Pour commencer par un exemple, créez un nouveau projet dans le Visual Studio. Pour faire accéder à ce projet les bibliothèques fondamentales du C, ajoutez le projet au chemin de C de C en ajoutant le fichier source ".C ”Extension avec le nom du projet et enregistrez-le. L'étape suivante et la plus élémentaire lors de la création d'un programme consiste à importer les bibliothèques spéciales dans le programme afin que vous puissiez accéder aux fonctions par défaut requises fournies par ces bibliothèques plus tard dans le programme. Nous importons les deux fichiers d'en-tête suivants pour ce programme:

$ # Inclure
$ # Inclure

Le premier fichier d'en-tête s'assure d'inclure les fonctions de printf () et de scanf (). Le second est le fichier d'en-tête que nous avons spécialement importé pour utiliser la méthode vsnprintf () après avoir créé la liste d'arguments variables. Après avoir inclus les deux fichiers d'en-tête précédents dans le projet, nous sommes prêts à implémenter la partie de notre programme qui traite de la construction du code pour notre exemple. Nous créons une fonction avec le type de retour entier «int» et nommez cette fonction comme «Formattedlist». Cette fonction reproduit tous les paramètres dont nous avons déjà discuté dans cet article pour la fonction vsnprintf () comme les arguments de la fonction. Le premier paramètre que nous passons à cette fonction est le pointeur du tableau où la sortie est écrite puis imprimée. Ensuite, nous donnons la taille de ce tableau et passons le format dans lequel nous imprimons notre tableau dans cette fonction.

Nous initialisons d'abord la longueur du tampon à être «0». Ensuite, nous créons ou initialisons une liste d'arguments de variable pour cette fonction avec le type «VA_LIST» et nommez «Arguments». Ensuite, nous commençons cette liste VA_ en appelant le «VA_START ()» et en le faisant passer le format et les arguments comme paramètres. Nous définissons ensuite la longueur du tampon en appelant le vsnprintf () et passons tous les objets pour les pointeurs que nous avons définis dans les paramètres de la fonction «Formattedlist». Nous terminons la liste des arguments en appelant le VA_END () et en sortons de la fonction en renvoyant la longueur.

Maintenant, nous déclarons la fonction principale. Dans cette fonction principale, nous déclarons un tableau «tampon» avec la taille de «50». Ensuite, nous créons le tableau d'arguments de la taille «50» et le nous attribuons avec les personnages «vous avez bien fait». Ensuite, nous initialisons à nouveau la longueur de cette fonction principale et appelons la fonction FormattedList () et lui faisons les paramètres en fonction des paramètres que nous avons définis plus tôt pour la longueur tout en créant la «fonction FormattedList». Cette fois, nous passons les «arguments» comme paramètre à cette fonction. Ensuite, nous affichons cette longueur et le tableau en appelant la méthode printf () comme indiqué dans l'extrait de code suivant:

# inclure
# inclure
Int FormattedList (Char * Buffer, int buffersize, const char * Format,…)

longueur int = 0; m
arguments VA_LIST;
va_start (arguments, format);
LONGUELLE = VSNPRINTF (tampon, tamponze, format, arguments);
va_end (arguments);
longueur de retour;

int main()

tampon char [50];
arguments char [50] = "vous avez bien fait";
int length = formattedList (tampon, 50, "% s", arguments);
printf ("Array:% s \ n", tampon);
printf ("nombres dans le tableau:% d \ n", longueur);
retour 0;


Après l'exécution du programme mentionné précédemment, il a d'abord composé une chaîne formatée et imprimé cette chaîne formatée sous la forme du tampon de chaîne ou du tableau de caractères.

Conclusion

Cet article nous guide sur la façon dont nous pouvons utiliser le concept de la fonction vsnprinft () pour imprimer le tableau de caractère de type de données «char» à partir de la liste des arguments qui sont déjà formatés. Nous avons fait un exemple sur cette fonction pour éliminer les pensées et vivre une expérience pratique sur ce sujet.