Megosztás a következőn keresztül:


_scprintf, _scprintf_l, _scwprintf_scwprintf_l

A formázott sztringben szereplő karakterek számát adja vissza.

Szemantika

int _scprintf(
   const char *format [,
   argument] ...
);
int _scprintf_l(
   const char *format,
   _locale_t locale [,
   argument] ...
);
int _scwprintf(
   const wchar_t *format [,
   argument] ...
);
int _scwprintf_l(
   const wchar_t *format,
   _locale_t locale [,
   argument] ...
);

Paraméterek

format
Formátumvezérlő sztring.

argument
Nem kötelező argumentumok.

locale
A használni kívánt területi beállítás.

További információ: Formátumspecifikáció szintaxisa.

Visszaadott érték

Azon karakterek számát adja vissza, amelyek akkor jönnek létre, ha a sztringet a megadott formázási kódok használatával nyomtatják ki vagy küldik el egy fájlba vagy pufferbe. A visszaadott érték nem tartalmazza a végződő null karaktert. _scwprintf ugyanezt a függvényt hajtja végre széles karakterek esetén.

Ha format mutatóról van szó NULL , a rendszer meghívja az érvénytelen paraméterkezelőt a paraméterérvényesítésben leírtak szerint. Ha a végrehajtás folytatódhat, ezek a függvények visszaadják a -1 és a errno következőre EINVAL: .

Ezekről és más hibakódokról további információt a errno, _doserrno, _sys_errlistés _sys_nerr.

Megjegyzések

Minden argument (ha van ilyen) az formatmegfelelő formátumspecifikációja szerint lesz konvertálva. A formátum egyszerű karakterekből áll, és az formatprintf argumentumával megegyező formában és függvénnyel rendelkezik.

Ezeknek a függvényeknek az utótaggal ellátott _l verziói azonosak, azzal a különbséggel, hogy az aktuális szál területi beállítása helyett a területi paramétert használják.

Fontos

Győződjön meg arról, hogy format ez nem felhasználó által definiált sztring.

A Windows 10 2004-es verziójától kezdve (19041-es build) a printf függvénycsalád pontosan ábrázolható lebegőpontos számokat nyomtat az IEEE 754 kerekítési szabályainak megfelelően. A Windows korábbi verzióiban az "5" végződésű lebegőpontos számok mindig felfelé kerekülnek. Az IEEE 754 szerint a legközelebbi páros számjegyre kell kerekíteniük (más néven "Banker kerekítése"). Például mindkettőt printf("%1.0f", 1.5) , és printf("%1.0f", 2.5) 2-re kell kerekítenie. Korábban az 1,5 2-et, a 2,5-öt pedig 3-ra kerekítené. Ez a változás csak a pontosan ábrázolható számokat érinti. Például a 2.35 (amely a memóriában ábrázolva közelebb van a 2.35000000000008-hoz) továbbra is 2,4-re kerekít. A függvények által végzett kerekítés mostantól a lebegőpontos kerekítési fesetroundmódot is figyelembe követi. Korábban a kerekítés mindig a viselkedést választotta FE_TONEAREST . Ez a módosítás csak a Visual Studio 2019 16.2-es és újabb verziójával készült programokat érinti. Az örökölt lebegőpontos kerekítési viselkedés használatához csatolja a legacy_stdio_float_rounding.obj.

Általános szöveges rutinleképezések

Tchar.h rutin _UNICODE és _MBCS nincs definiálva _MBCS definiálva _UNICODE definiálva
_sctprintf _scprintf _scprintf _scwprintf
_sctprintf_l _scprintf_l _scprintf_l _scwprintf_l

Követelmények

Rutin Kötelező fejléc
_scprintf, _scprintf_l <stdio.h>
_scwprintf, _scwprintf_l <stdio.h> vagy <wchar.h>

További kompatibilitási információkért lásd: Kompatibilitás.

példa

// crt__scprintf.c

#define _USE_MATH_DEFINES

#include <stdio.h>
#include <math.h>
#include <malloc.h>

int main( void )
{
   int count;
   int size;
   char *s = NULL;

   count = _scprintf( "The value of Pi is calculated to be %f.\n",
                      M_PI);

   size = count + 1; // the string will need one more char for the null terminator
   s = malloc(sizeof(char) * size);
   sprintf_s(s, size, "The value of Pi is calculated to be %f.\n",
                      M_PI);
   printf("The length of the following string will be %i.\n", count);
   printf("%s", s);
   free( s );
}
The length of the following string will be 46.
The value of Pi is calculated to be 3.141593.

Lásd még

Stream I/O-
fprintf, _fprintf_l, fwprintf_fwprintf_l
printf, _printf_l, wprintf_wprintf_l
scanf, _scanf_l, wscanf_wscanf_l
sscanf, _sscanf_l, swscanf_swscanf_l
vprintf funkciók