printf_s, _printf_s_l, wprintf_s, _wprintf_s_l
Biçimlendirilmiş çıktıları standart çıkış akışına yazdırır.Bu printf, _printf_l, wprintf, _wprintf_l sürümlerinde CRT'deki Güvenlik Özellikleri içinde açıklandığı gibi güvenlik geliştirmeleri mevcut olabilir.
int printf_s(
const char *format [,
argument]...
);
int _printf_s_l(
const char *format,
locale_t locale [,
argument]...
);
int wprintf_s(
const wchar_t *format [,
argument]...
);
int _wprintf_s_l(
const wchar_t *format,
locale_t locale [,
argument]...
);
Parametreler
format
Biçim denetimi.argument
İsteğe bağlı bağımsız değişkenler.locale
Kullanılacak yerel ayar.
Dönüş Değeri
Bir hata oluşursa yazdırılan karakter sayısını veya negatif bir değer döndürür.
Notlar
printf_s işlevi, stdout standart çıktı akışı için bir dizi karakter ve değer biçimlendirir ve yazdırır.Bağımsız değişkenler izlerseniz format dizesi, format dize bağımsız değişkenler için çıktı biçimini belirleyen özellikleri içermesi gerekir.
Arasındaki temel fark printf_s ve printf olan printf_s ise geçerli biçimlendirme karakterleri için biçim dizesi denetler printf yalnızca biçim dizesi null işaretçi olup olmadığını denetler.Ya da başarısız iade ederseniz, bir geçersiz parametre işleyicisi, açıklandığı gibi çağrılır Parametre Doğrulama.Yürütmenin devam etmesine izin verilirse işlev -1 döndürür ve errno öğesini EINVAL olarak ayarlar.
errno ve hata kodları hakkında bilgi için bkz. _doserrno, errno, _sys_errlist ve _sys_nerr.
printf_sve fprintf_s durumlar dışında aynı şekilde davranır printf_s çıktısına Yazar stdout yerine bir hedef türü FILE.Daha fazla bilgi için bkz. fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_l.
wprintf_s, printf_s öğesinin geniş karakterli sürümüdür; format geniş karakterli bir dizedir.wprintf_s ve printf_s, akış ANSI modunda açıldığında aynı şekilde çalışır.printf_s şu anda UNICODE akışına çıkış alınmasını desteklemez.
_l sonekine sahip bu işlevlerin sürümleri, geçerli iş parçacığı yerel ayarı yerine iletilen yerel ayar parametresini kullanmalarıdır.
Genel Metin Yordam Eşleşmeleri
TCHAR.H yordamı |
_UNICODE & _MBCS tanımlanmamış |
_MBCS tanımlanmış |
_unicode tanımlanmış |
---|---|---|---|
_tprintf_s |
printf_s |
printf_s |
wprintf_s |
_tprintf_s_l |
_printf_s_l |
_printf_s_l |
_wprintf_s_l |
format bağımsız değişkeni sıradan karakterler, çıkış sıraları ve (format arkasından bağımsız değişken geliyorsa) biçim belirtimlerinden oluşur.Sıradan karakterler ve çıkış sıraları, görünme sırasına göre stdout içine kopyalanır.Örneğin, satır
printf_s("Line one\n\t\tLine two\n");
aşağıdaki çıktıyı verir
Line one
Line two
Biçim belirtimleri her zaman yüzde işaretiyle (%) başlar ve soldan sağa doğru okunur.printf_s ilk biçim belirtimiyle karşılaştığında (varsa), format sonrasındaki ilk bağımsız değişkenin değerini döndürür ve çıkışı ona göre yapar.İkinci biçim belirtimi ikinci bağımsız değişkenin dönüştürülmesine, çıkışa ve benzerlerine neden olur.Biçim belirtimlerinden daha fazla bağımsız değişken varsa, ek bağımsız değişkenler yoksayılır.Tüm biçim belirtimleri için yeterli bağımsız değişken yoksa, sonuçlar tanımsızdır.
![]() |
---|
format öğesinin bir kullanıcı tanımlı dize olmadığından emin olun. |
Gereksinimler
Yordam |
Gerekli başlık |
---|---|
printf_s, _printf_s_l |
<stdio.h> |
wprintf_s, _wprintf_s_l |
<stdio.h> or <wchar.h> |
Konsol Windows Mağazası uygulamalarında desteklenmiyor.stdin, stdout ve stderr konsolları ile ilişkili standart akış işleyicileri, C çalışma zamanı işlevleri bunları Windows Mağazası uygulamalarında kullanmadan önce yeniden yönlendirilmelidir.Ek uyumluluk bilgileri için bkz. Uyumluluk.
Örnek
// crt_printf_s.c
/* This program uses the printf_s and wprintf_s functions
* to produce formatted output.
*/
#include <stdio.h>
int main( void )
{
char ch = 'h', *string = "computer";
int count = -9234;
double fp = 251.7366;
wchar_t wch = L'w', *wstring = L"Unicode";
/* Display integers. */
printf_s( "Integer formats:\n"
" Decimal: %d Justified: %.6d Unsigned: %u\n",
count, count, count );
printf_s( "Decimal %d as:\n Hex: %Xh C hex: 0x%x Octal: %o\n",
count, count, count, count );
/* Display in different radixes. */
printf_s( "Digits 10 equal:\n Hex: %i Octal: %i Decimal: %i\n",
0x10, 010, 10 );
/* Display characters. */
printf_s("Characters in field (1):\n%10c%5hc%5C%5lc\n", ch, ch, wch, wch);
wprintf_s(L"Characters in field (2):\n%10C%5hc%5c%5lc\n", ch, ch, wch, wch);
/* Display strings. */
printf_s("Strings in field (1):\n%25s\n%25.4hs\n %S%25.3ls\n",
string, string, wstring, wstring);
wprintf_s(L"Strings in field (2):\n%25S\n%25.4hs\n %s%25.3ls\n",
string, string, wstring, wstring);
/* Display real numbers. */
printf_s( "Real numbers:\n %f %.2f %e %E\n", fp, fp, fp, fp );
/* Display pointer. */
printf_s( "\nAddress as: %p\n", &count);
}
Örnek Çıktı
Integer formats:
Decimal: -9234 Justified: -009234 Unsigned: 4294958062
Decimal -9234 as:
Hex: FFFFDBEEh C hex: 0xffffdbee Octal: 37777755756
Digits 10 equal:
Hex: 16 Octal: 8 Decimal: 10
Characters in field (1):
h h w w
Characters in field (2):
h h w w
Strings in field (1):
computer
comp
Unicode Uni
Strings in field (2):
computer
comp
Unicode Uni
Real numbers:
251.736600 251.74 2.517366e+002 2.517366E+002
Address as: 0012FF78
.NET Framework Eşdeğeri
Ayrıca bkz.
Başvuru
fprintf, _fprintf_l, fwprintf, _fwprintf_l
scanf, _scanf_l, wscanf, _wscanf_l