Exporter (0) Imprimer
Développer tout
and
div
eof
not
or
xor
Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

_gcvt

Convertit une valeur en virgule flottante en une chaîne, qu'elle stocke dans une mémoire tampon. Des versions plus sécurisées de ces fonctions sont disponibles ; consultez _gcvt_s.

char *_gcvt( 
   double value,
   int digits,
   char *buffer 
);

value

Valeur à convertir.

digits

Nombre de chiffres significatifs stockés.

buffer

Emplacement de stockage du résultat.

_gcvt retourne un pointeur vers la chaîne de chiffres.

La fonction _gcvt convertit un value à virgule flottante en une chaîne de caractères (incluant une virgule et éventuellement un octet de signe) et enregistre la chaîne dans buffer. buffer doit être suffisamment grande pour contenir la valeur convertie et un caractère NULL de fin, qui est ajouté automatiquement. Si une taille de mémoire tampon valant digits + 1 est utilisée, la fonction remplace la fin de la mémoire tampon. Cela est dû au fait que la chaîne convertie inclut une virgule et peut contenir des informations de signe et d'exposant. Il n'y a aucune provision pour un dépassement de capacité. _gcvt tente de générer des chiffres digits au format décimal. S'il est impossible, il génère des chiffres digits au format exponentiel. Les zéros à droite peuvent être supprimés de la conversion.

Une buffer de longueur _CVTBUFSIZE est suffisante pour n'importe quelle valeur à virgule flottante.

Cette fonction valide ses paramètres. Si buffer est NULL, le gestionnaire de paramètres non valides est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, cette fonction paramètre errno à EINVAL et renvoie NULL.

Routine

En-tête requis

_gcvt

<stdlib.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

// crt_gcvt.c
// compile with: /W3
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main( void )
{
   char buffer[_CVTBUFSIZE];
   double value = -1234567890.123;
   printf( "The following numbers were converted by _gcvt(value,12,buffer):\n" );
   _gcvt( value, 12, buffer ); // C4996
   // Note: _gcvt is deprecated; consider using _gcvt_s instead
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value *= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value *= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value *= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );

   printf( "\n" );
   value = -12.34567890123;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value /= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value /= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value /= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
}
Les valeurs suivantes ont été convertis par le _gcvt (valeur, 12, tampon) :
mémoire tampon : « 1234567890,12 " (14 caractères)
mémoire tampon : '-12345678901.2' (14 caractères)
mémoire tampon : '-123456789012' (13 caractères)
mémoire tampon : '-1.23456789012e+012' (19 caractères)

mémoire tampon : '-12.3456789012' (14 caractères)
mémoire tampon : '-1.23456789012' (14 caractères)
mémoire tampon : '-0.123456789012' (15 caractères)
mémoire tampon : '-1.23456789012e-002' (19 caractères)

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft