Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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