_fcvt_s

Konvertiert eine Gleitkommazahl in eine Zeichenfolge.Dies ist eine Version von _fcvt mit unter Security Enhancements, wie in Sicherheitsfeatures im CRTbeschrieben.

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

Parameter

  • [out] buffer
    Der angegebene Puffer, der das Ergebnis der Konvertierung enthält.

  • [in] sizeInBytes
    Die Größe des Puffers in Byte.

  • [in] value
    Der zu konvertierende Zahl.

  • [in] count
    Anzahl der Ziffern nach dem Dezimalkomma.

  • [out] dec
    Zeiger auf die gespeicherten Kommastellung.

  • [out] sign
    Zeiger auf den Indikator gespeicherten Zeichen.

Rückgabewert

Beliebige wenn der Vorgang erfolgreich war.Der Rückgabewert ist ein Fehlercode, wenn ein Fehler auftritt.Fehlercodes werden in Errno.h definiert.Eine Liste dieser Fehler ausgelöst wird, finden Sie unter errno, _doserrno, _sys_errlist und _sys_nerr.

Im Falle eines ungültigen Parameters, wie in der folgenden Tabelle aufgeführt, ruft diese Funktion auf der ungültige Parameter für, wie in Parametervalidierungbeschrieben.Wenn die Ausführung ermöglicht wird, um fortzufahren, gibt diese Funktion errno legt diesen fest EINVAL und EINVALzurück.

Fehlerbedingungen

buffer

sizeInBytes

value

count

Dezember

sign

Return

Wert in buffer

NULL

alle

alle

alle

alle

alle

EINVAL

Nicht geändert.

Nicht NULL (Zeigt auf den gültigen Arbeitsspeicher)

<=0

alle

alle

alle

alle

EINVAL

Nicht geändert.

alle

alle

alle

alle

NULL

alle

EINVAL

Nicht geändert.

alle

alle

alle

alle

alle

NULL

EINVAL

Nicht geändert.

Sicherheitsprobleme

_fcvt_s kann eine Zugriffsverletzung generiert, wenn buffer sich nicht auf den gültigen Arbeitsspeicher wird und nicht NULList.

Hinweise

Die _fcvt_s-Funktion konvertiert eine Gleitkommazahl auf eine auf NULL endende Zeichenfolge.Der Parameter ist value die zu konvertierende Gleitkommazahl._fcvt_s speichert die Ziffern von value als Zeichenfolge und fügt ein NULL-Zeichen („\ 0 ").Der count-Parameter gibt die Anzahl der nach dem Dezimalkomma an Ziffern gespeichert werden soll.Überschüssige Ziffern gerundet werden count Stellen zu deaktivieren.Wenn weniger Ziffern als count der Genauigkeit vorhanden ist, wird die Zeichenfolge mit Nullen aufgefüllt.

Nur Ziffern sind in der Zeichenfolge gespeichert.Die Position des Dezimaltrennzeichens und das Zeichen aus value können von dec und sign nach dem Aufruf abgerufen werden.Der dec-Parameter zeigt auf einen ganzzahligen Wert. dieser ganzzahlige Wert gibt die Position des Dezimaltrennzeichens in Bezug auf den Anfang der Zeichenfolge.Ein null oder negativer ganzzahliger Wert gibt an, dass das Dezimaltrennzeichen links vom ersten Stelle befindet.Der Parameter sign zeigt auf eine ganze Zahl, die das Vorzeichen von valueangibt.Die ganze Zahl wird auf 0 festgelegt, wenn value positiv ist, und wird in eine Zahl ungleich 0 (null) festgelegt, wenn value negativ ist.

Ein Puffer der Länge _CVTBUFSIZE ist für jeden Gleitkommawert ausreichend.

Der Unterschied zwischen _ecvt_s und _fcvt_s ist in der Interpretation des count-Parameters._ecvt_s interpretiert count , während die Gesamtanzahl der Ziffern in der Ausgabezeichenfolge und _fcvt_s count als die Anzahl der Stellen nach dem Dezimalkomma interpretiert.

In C++ unter Verwendung dieser Funktion wird durch eine Vorlagen Überladung vereinfacht. Überladung kann die Pufferlänge automatisch ableiten, und die Anforderung ein Größen - Argument angegeben wird.Weitere Informationen finden Sie unter Speichern Sie Vorlagen-Überladungen.

Die Debugversion dieser Funktion wird zuerst den Puffer mit 0xFD aus.Um dieses Verhalten zu deaktivieren, verwenden Sie _CrtSetDebugFillThreshold.

Anforderungen

Funktion

Erforderlicher Header

Optionaler Header

_fcvt_s

<stdlib.h>

<errno.h>

Weitere Informationen finden Sie unter Kompatibilität Kompatibilität in der Einführung.

Bibliotheken: Alle Versionen CRT-Bibliotheks-Funktionen.

Beispiel

// 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);  
  
}
  

.NET Framework-Entsprechung

ToString

Siehe auch

Referenz

Datenkonvertierung

Gleitkommaunterstützung

atof, _atof_l, _wtof, _wtof_l

_ecvt_s

_gcvt_s

_fcvt