_gcvt
Kayan nokta değeri arabellekte saklar bir dizeye dönüştürür.Bu işlev, daha güvenli bir sürümünü kullanılabilir; Bkz: _gcvt_s.
char *_gcvt(
double value,
int digits,
char *buffer
);
Parametreler
value
Dönüştürülecek değer.digits
Anlamlı depolanan basamak sayısı.buffer
Sonuç için depolama konumu.
Dönüş Değeri
_gcvtrakam dizesi için bir işaretçi döndürür.
Notlar
_gcvt İşlevi dönüştüren bir kayan nokta value (içeren bir ondalık noktası ve olası işareti bayt) bir karakter dizesine dizilerinde saklar ve buffer.buffer Dönüştürülmüş değeri artı otomatik olarak eklenir, Sonlandırıcı boş karakter, kapsayacak kadar büyük olmalıdır.Arabellek boyutu, digits + 1 kullanılır, son arabellek işlevi geçersiz kılar.Dönüştürülmüş dize içeren bir ondalık noktası ve işareti ve üs bilgi içerebilir olmasıdır.Taşma desteği bulunmamaktadır vardır._gcvtüretmeye çalışır digits basamak ondalık biçiminde.Bu işlem gerçekleştirilemiyor, üreten digits basamaklı üstel biçim.Sondaki sıfırlar dönüştürme gizlenmiş.
A buffer uzunlukta _CVTBUFSIZE herhangi bir değişken için yeterli olan nokta değeri.
Bu işlev parametreleri doğrular.buffer Olan NULL, geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre Doğrulama.Yürütülmesine devam etmek için izin verilmişse, bu işlevi ayarlar errno için EINVAL ve NULL.
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
_gcvt |
<stdlib.h> |
Daha fazla uyumluluk bilgileri için bkz: Uyumluluk giriş.
Örnek
// 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) );
}