_sprintf_p, _sprintf_p_l, _swprintf_p, _swprintf_p_l
Biçimlendirilmiş veri biçim dizesi parametreleri kullanılır sırasını belirtme yeteneği ile bir dize yazın.
int _sprintf_p(
char *buffer,
size_t sizeOfBuffer,
const char *format [,
argument] ...
);
int _sprintf_p_l(
char *buffer,
size_t sizeOfBuffer,
const char *format,
locale_t locale [,
argument] ...
);
int _swprintf_p(
wchar_t *buffer,
size_t sizeOfBuffer,
const wchar_t *format [,
argument]...
);
int _swprintf_p_l(
wchar_t *buffer,
size_t sizeOfBuffer,
const wchar_t *format,
locale_t locale [,
argument] …
);
Parametreler
buffer
Çıktı için depolama konumusizeOfBuffer
Saklamak için karakter sayısı üst sınırı.format
Denetim Biçimlendir dizeargument
İsteğe bağlı bağımsız değişkenlerlocale
Kullanılacak yerel ayarı.
Daha fazla bilgi için bkz: Biçimi belirtimleri.
Dönüş Değeri
Yazılan karakterleri veya bir hata oluştuysa –1 sayısı.
Notlar
_sprintf_p İşlevi biçimlendirir ve bir dizi karakter ve değerleri saklayan buffer.Her argument (varsa) dönüştürülür ve ilgili biçim belirtimini uyarınca çıktı format.Biçim sıradan karakterlerden oluşur ve aynı form ve olarak işlev format bağımsız değişkeni printf_p.A NULL karakter yazılmış son karakterin arkasına eklenir.Kopyalama dizeler arasında çakışma oluşursa, tanımsız bir davranıştır.Arasındaki fark _sprintf_p ve sprintf_s olan _sprintf_p Biçim dizesinde bağımsız değişkenler kullanılır sırasını belirleme sağlar destekler Konumsal parametreler.Daha fazla bilgi için bkz. printf_p Konumsal Parametreler.
_swprintf_pgeniş karakter sürümü _sprintf_p; İşaretçi bağımsız _swprintf_p geniş karakter dizeleridir.Kodlama hatalarını algılama _swprintf_p görünenden farklı olabilir _sprintf_p._swprintf_pve fwprintf_p dışında aynı şekilde davranır _swprintf_p çıkış hedef türü yerine bir dize yazma FILE, ve _swprintf_p gerektiren counten fazla yazılacak karakter sayısını belirtmek için parametre.Bu işlevler ile sürümlerini _l soneki yerine geçerli iş parçacığı yerel geçirilen yerel parametresi kullandıkları dışında aynı.
_sprintf_pdepolanan bayt sayısını verir buffer, sonlandırma saymaz NULL karakter._swprintf_pdepolanan geniş karakter sayısını verir buffer, sonlandırma saymaz NULL geniş karakter.buffer Veya format bir null işaretçi veya biçim dizesi geçersiz biçimlendirme karakterlerini içeriyorsa, geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre doğrulama.Yürütülmesine devam etmek için izin verilmişse, bu işlevler -1 geri dönün ve errno için EINVAL.
Genel metin yordamı eşlemeleri
TCHAR.H yordamına girildi |
_UNICODE & _mbcs tanımlı değil |
Tanımlanan _mbcs |
Tanımlanan _UNICODE |
---|---|---|---|
_stprintf_p |
_sprintf_p |
_sprintf_p |
_swprintf_p |
_stprintf_p_l |
_sprintf_p_l |
_sprintf_p_l |
_swprintf_p_l |
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
_sprintf_p, _sprintf_p_l |
<stdio.h> |
_swprintf_p, _swprintf_p_l |
<stdio.h> veya <wchar.h> |
Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.
Örnek
// crt_sprintf_p.c
// This program uses _sprintf_p to format various
// data and place them in the string named buffer.
//
#include <stdio.h>
int main( void )
{
char buffer[200],
s[] = "computer", c = 'l';
int i = 35,
j;
float fp = 1.7320534f;
// Format and print various data:
j = _sprintf_p( buffer, 200,
" String: %s\n", s );
j += _sprintf_p( buffer + j, 200 - j,
" Character: %c\n", c );
j += _sprintf_p( buffer + j, 200 - j,
" Integer: %d\n", i );
j += _sprintf_p( buffer + j, 200 - j,
" Real: %f\n", fp );
printf( "Output:\n%s\ncharacter count = %d\n",
buffer, j );
}
// crt_swprintf_p.c
// This is the wide character example which
// also demonstrates _swprintf_p returning
// error code.
#include <stdio.h>
#define BUFFER_SIZE 100
int main( void )
{
wchar_t buffer[BUFFER_SIZE];
int len;
len = _swprintf_p(buffer, BUFFER_SIZE, L"%2$s %1$d",
0, L" marbles in your head.");
_printf_p( "Wrote %d characters\n", len );
// _swprintf_p fails because string contains WEOF (\xffff)
len = _swprintf_p(buffer, BUFFER_SIZE, L"%s",
L"Hello\xffff world" );
_printf_p( "Wrote %d characters\n", len );
}
.NET Framework Eşdeğeri
Ayrıca bkz.
Başvuru
_fprintf_p, _fprintf_p_l, _fwprintf_p, _fwprintf_p_l
fprintf, _fprintf_l, fwprintf, _fwprintf_l
_printf_p, _printf_p_l, _wprintf_p, _wprintf_p_l
printf, _printf_l, wprintf, _wprintf_l
scanf, _scanf_l, wscanf, _wscanf_l
sscanf, _sscanf_l, swscanf, _swscanf_l