Udostępnij za pośrednictwem


_fcvt_s

Konwertuje liczbę zmiennoprzecinkowych na ciąg.Jest to wersja z _fcvt z rozszerzeń zabezpieczeń opisane w Funkcje zabezpieczeń w CRT.

errno_t _fcvt_s( 
   char* buffer,
   size_t sizeInBytes,
   double value,
   int count,
   int *dec,
   int *sign 
);
template <size_t size>
errno_t _fcvt_s( 
   char (&buffer)[size],
   double value,
   int count,
   int *dec,
   int *sign 
); // C++ only

Parametry

  • [out]buffer
    Podany bufor będzie zawierać wynik konwersji.

  • [w]sizeInBytes
    Rozmiar buforu w bajtach.

  • [w]value
    Liczby są konwertowane.

  • [w]count
    Liczba cyfr po przecinku.

  • [out]dec
    Wskaźnik do przechowywanych położenie przecinka dziesiętnego.

  • [out]sign
    Wskaźnik do wskaźnika przechowywane znak.

Wartość zwracana

Zero, jeśli kończy się pomyślnie.Wartość zwracana jest kod błędu, jeśli wystąpi awaria.Kody błędów są zdefiniowane w errno.Aby uzyskać listę tych błędów, zobacz errno, _doserrno, _sys_errlist, and _sys_nerr.

W odniesieniu do nieprawidłowy parametr, jak wymieniono w poniższej tabeli ta funkcja wywołuje obsługi nieprawidłowy parametr zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, ta funkcja ustawia errno do EINVAL i zwraca EINVAL.

Warunki błędów

buffer

sizeInBytes

wartość

Licznik

grudzień

znak

Zwrot

Wartośćbuffer

NULL

wszelkie

wszelkie

wszelkie

wszelkie

wszelkie

EINVAL

Nie jest modyfikowany.

Nie NULL (wskazuje prawidłowy pamięci)

< = 0

wszelkie

wszelkie

wszelkie

wszelkie

EINVAL

Nie jest modyfikowany.

wszelkie

wszelkie

wszelkie

wszelkie

NULL

wszelkie

EINVAL

Nie jest modyfikowany.

wszelkie

wszelkie

wszelkie

wszelkie

wszelkie

NULL

EINVAL

Nie jest modyfikowany.

Problemy dotyczące zabezpieczeń

_fcvt_smoże wygenerować naruszenie zasad dostępu, jeśli buffer nie wskazuje prawidłowy pamięci i nie jest NULL.

Uwagi

_fcvt_s Funkcja konwertuje liczbę zmiennoprzecinkową ciągu zakończonego znakiem null.value Parametru jest liczba zmiennoprzecinkowa do konwersji._fcvt_sprzechowuje cyfr z value jako ciąg znaków i dołącza znak null (\0).count Parametr określa liczbę cyfr, które mają być przechowywane po separatorze dziesiętnym.Nadmiar cyfry są zaokrąglane do count miejsca.Jeżeli jest mniej niż count dokładnością, ciąg cyfr jest uzupełniony zerami.

Tylko cyfry są przechowywane w ciągu.Położenie przecinka dziesiętnego i znak value , można otrzymać od dec i sign po wywołaniu.dec Parametru wskazuje wartość całkowitą; Ta wartość całkowitą podaje położenie przecinka dziesiętnego, w odniesieniu do początku ciągu znaków.Zero lub wartość ujemną liczbą całkowitą wskazuje, że leży przecinka dziesiętnego po lewej stronie pierwszej cyfry.Parametr sign wskazuje całkowitą wskazującą znak value.Liczba całkowita jest równa 0, jeśli value jest pozytywny i jest ustawiona na różną od zera jeśli liczba value jest liczbą ujemną.

Bufor o długości _CVTBUFSIZE jest wystarczający dla żadnych przestawnych wartości.

Różnica między _ecvt_s i _fcvt_s jest w interpretacji count parametru._ecvt_sinterpretuje count jako całkowita liczba cyfr w ciągu danych wyjściowych i _fcvt_s interpretuje count jako liczba cyfr po przecinku.

W języku C++ za pomocą tej funkcji jest uproszczona poprzez przeciążenie szablonu; przeciążenia mogą wywnioskować strony długość buforu automatycznie, eliminując konieczność należy określić argument rozmiar.Aby uzyskać więcej informacji, zobacz Przeciążenia bezpiecznych szablonów.

Wersja programu debug tej funkcji po raz pierwszy wypełnia bufor 0xFD.Aby wyłączyć to zachowanie, należy użyć _CrtSetDebugFillThreshold.

Wymagania

Funkcja

Wymaganego nagłówka

Opcjonalne nagłówka

_fcvt_s

<stdlib.h>

<errno.h>

Informacji dotyczących zgodności, zobacz Zgodność we wprowadzeniu.

Biblioteki: wszystkie wersje Biblioteka CRT — Funkcje.

Przykład

// fcvt_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 = _fcvt_s(buf, _CVTBUFSIZE, 1.2, 5, &decimal, &sign);
  
  if (err != 0)
  {
     printf("_fcvt_s failed with error code %d\n", err);
     exit(1);
  }

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

Odpowiednik w programie .NET Framework

ToString

Zobacz też

Informacje

Konwersja danych

Obsługa liczb zmiennoprzecinkowych

atof, _atof_l, _wtof, _wtof_l

_ecvt_s

_gcvt_s

_fcvt