_ecvt_s

Dönüştüren bir double bir dize numarası.Bu sürümü, _ecvt açıklandığı gibi güvenlik geliştirmeleri ile CRT'deki Güvenlik Özellikleri.

errno_t _ecvt_s( 
   char * _Buffer,
   size_t _SizeInBytes,
   double _Value,
   int _Count,
   int *_Dec,
   int *_Sign
);
template <size_t size>
errno_t _ecvt_s( 
   char (&_Buffer)[size],
   double _Value,
   int _Count,
   int *_Dec,
   int *_Sign
); // C++ only

Parametreler

  • [Çıkış]_Buffer
    Dizeye dönüştürme sonucu basamak, işaretçi dolu.

  • [in]_SizeInBytes
    Arabelleğinin bayt cinsinden boyutu.

  • [in]_Value
    Dönüştürülecek sayı.

  • [in]_Count
    Depolanan basamak sayısı.

  • [Çıkış]_Dec
    Ondalık noktasının konumunu depolanan.

  • [Çıkış]_Sign
    Dönüştürülen sayının işareti.

Dönüş Değeri

Başarılı olursa sıfır.Bir hata varsa dönüş değeri hata kodudur.Hata kodları Errno.h tanımlanır.Daha fazla bilgi için bkz. errno, _doserrno, _sys_errlist, and _sys_nerr.

Geçersiz bir parametre aşağıdaki tabloda listelendiği gibi bu işlevi geçersiz parametre işleyicisi açıklandığı gibi çağırır Parametre Doğrulama.Yürütülmesine devam etmek için izin verilmişse, bu işlevi ayarlar errno için EINVAL ve EINVAL.

Hata koşulları

_Buffer

_SizeInBytes

_Value

_Count

_Dec

_Sign

Dönüş değeri

İçindeki değerbuffer

NULL

herhangi bir

herhangi bir

herhangi bir

herhangi bir

herhangi bir

EINVAL

Değiştirilmedi.

Değil NULL (noktaları için geçerli bellek)

< = 0

herhangi bir

herhangi bir

herhangi bir

herhangi bir

EINVAL

Değiştirilmedi.

herhangi bir

herhangi bir

herhangi bir

herhangi bir

NULL

herhangi bir

EINVAL

Değiştirilmedi.

herhangi bir

herhangi bir

herhangi bir

herhangi bir

herhangi bir

NULL

EINVAL

Değiştirilmedi.

Güvenlik sorunları

_ecvt_serişim ihlali olursa oluşturabilecek buffer için geçerli bellek göstermiyor ve değil NULL.

Notlar

_ecvt_s İşlevi bir kayan noktalı sayı bir karakter dizesine dönüştürür._Value Dönüştürülecek kayan noktalı sayı parametresidir.Bu işlev kadar depolar count rakamını _Value bir dize olarak ve boş karakter ('\0') ekler.Basamak sayısını _Value uzun _Count, alt sıra basamak yuvarlanır.Varsa daha az count basamak, dize sıfır koyarak azsa.

Yalnızca rakam dizesi içinde saklanır.Ondalık noktası ve işareti konumunu _Value den alınan _Dec ve _Sign çağrısının._Dec Parametresi işaret dizenin başı açısından ondalık noktasının konumunu veren bir tamsayı değeri için.İçinde 0 veya eksi tamsayı, ondalık noktasının ilk basamak solunda bulunan gösterir._Sign Parametresi işaret dönüştürülmüş sayının işaretini belirten bir tamsayı.Tamsayı değeri 0 ise, pozitif bir sayıdır.Aksi takdirde, sayı negatif olur.

Arabellek uzunluğu _CVTBUFSIZE herhangi bir kayan nokta değeri için yeterlidir.

Arasındaki fark _ecvt_s ve _fcvt_s 'ın yorumu olan _Count parametresi._ecvt_syorumlar _Count çıkış dizesi basamak sayısı olarak ise _fcvt_s yorumlar _Count ondalık basamak sayısı.

C++'da, bu işlevi kullanarak şablon aşırı tarafından basitleştirilerek verilmiştir; aşırı arabellek uzunluğu otomatik olarak size baðýmsýz deðiþkeni belirtmek için gereksiz gerçekleştirip.Daha fazla bilgi için bkz. Güvenli Şablon Aşırı Yüklemeleri.

Bu işlev hata ayıklama sürümünü ilk 0xFD ile arabellek doldurur.Bu davranışı devre dışı bırakmak için _CrtSetDebugFillThreshold.

Gereksinimler

İşlev

Gerekli başlık

İsteğe bağlı bir üstbilgi

_ecvt_s

<stdlib.h>

<errno.h>

Daha fazla uyumluluk bilgileri için bkz: Uyumluluk giriş.

Örnek

// ecvt_s.c
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

int main( )
{
  char * buf = 0;
  int decimal;
  int sign;
  int err;

  buf = (char*) malloc(_CVTBUFSIZE);
  err = _ecvt_s(buf, _CVTBUFSIZE, 1.2, 5, &decimal, &sign);
  
  if (err != 0)
  {
     printf("_ecvt_s failed with error code %d\n", err);
     exit(1);
  }

  printf("Converted value: %s\n", buf);  
  
}
  

.NET Framework Eşdeğeri

ToString

Ayrıca bkz.

Başvuru

Veri Dönüştürme

Kayan Nokta Desteği

atof, _atof_l, _wtof, _wtof_l

_ecvt

_fcvt_s

_gcvt_s