Aracılığıyla paylaş


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.

Güvenlik NotuGüvenlik Notu

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

Kayan Nokta Desteği

Akış G/Ç

Yerel Ayar

fopen, _wfopen

fprintf, _fprintf_l, fwprintf, _fwprintf_l

scanf, _scanf_l, wscanf, _wscanf_l

sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l

vprintf İşlevleri