_gcvt
Konvertiert eine Gleitkommazahl mit einer Zeichenfolge, die sie in einem Puffer gespeichert wird.Eine sicherere Version dieser Funktion ist verfügbar. Weitere Informationen finden Sie unter _gcvt_s.
char *_gcvt(
double value,
int digits,
char *buffer
);
Parameter
value
Der zu konvertierende Wert.digits
Anzahl der signifikanten Ziffern gespeichert.buffer
Speicherort für das Ergebnis.
Rückgabewert
_gcvt gibt einen Zeiger auf die Zeichenfolge von Ziffern zurück.
Hinweise
Die _gcvt-Funktion value float konvertiert in eine Zeichenfolge und ein Dezimaltrennzeichen (byte) umfasst ein beliebiges Zeichen und speichert die Zeichenfolge in buffer.buffer muss groß genug sein, den konvertierten Wert NULL aufweist, das ein positiver automatisch angefügt wird.Wenn eine Puffergröße von digits + 1 verwendet wird, überschreibt die Funktion zum Ende des Puffers.Dies liegt daran, dass die konvertierte Zeichenfolge ein Dezimaltrennzeichen beinhaltet und Zeichen- und Exponenten Informationen enthalten kann.Es gibt keine Bereitstellung für Überlauf._gcvt versucht, digits Ziffern im Dezimalformat zu erzeugen.Wenn es nicht möglich ist, erzeugt es digits Ziffern im exponentiellen Format.Nachgestellte Nullen werden bei der Konvertierung unterdrückt werden.
buffer der Länge _CVTBUFSIZE ist für jeden Gleitkommawert ausreichend.
Diese Funktion überprüft seine Parameter.Wenn bufferNULLungültige Parameter ist, wird der Ereignishandler aufgerufen, wie in Parametervalidierungbeschrieben.Wenn die Ausführung ermöglicht wird, um fortzufahren, gibt diese Funktion errno legt diesen fest EINVAL und NULLzurück.
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_gcvt |
<stdlib.h> |
Weitere Informationen finden Sie unter Kompatibilität Kompatibilität in der Einführung.
Beispiel
// 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) );
}