Aracılığıyla paylaş


printf_p Konumsal Parametreler

Konumsal Parametreler olan bağımsız bir alana biçim dizesi atanması numarasına göre belirtme olanağı sağlar.Aşağıdaki Konumsal parametre printf işlevleri kullanılabilir:

Konumsal Parametreler belirtme

bt7tawza.collapse_all(tr-tr,VS.110).gifParametre dizin oluşturma

Konumsal biçimlendirmesi içermeyen varsa, varsayılan olarak Konumsal işlev olmayan pozisyon olanları özdeş olarak davranır.Konumsal Parametreler biçiminde belirtilir "%m$x", nerede m parametresi önceki biçim dizesi parametreleri, listedeki konumunu gösteren bir sayısal sıra numarası gösterir ve x belirtilen türü alanı karakter türünü gösterir printf işlevi.Parametre listesinde, listedeki ilk öğe 1 değerini vb. başlayarak dizine alınır.Tür alanı karakterleri ile ilgili ek bilgi için bkz: printf alan karakterleri yazın.

Bu davranış, örneğin:

_printf_p("%1$s %2$s", "November", "10");

yazdırır

November 10

Kullanılan numaralar sırasını verilen değişkenlerin sırası aynı değil.Böylece aşağıdaki geçerli olur:

_printf_p("%2$s %1$s", "November", "10");

yazdırır

10 November

Parametre kullanılır ve birden fazla kez biçimlendirirken, aksine, geleneksel biçimlendirme dizeleri, bu nedenle söz konusu

_printf_p("%{1$d times %1$d is %2$d", 10, 100);

yazdırır

10 times 10 is 100

Ancak, tüm bağımsız değişkenler en az bir kez bir yerde biçim dizesi kullanılmalıdır.

Konumsal parametreler bir biçim dizesi için izin verilen en fazla sayısı tarafından verilen _ARGMAX.

bt7tawza.collapse_all(tr-tr,VS.110).gifGenişlik ve Prevision

Zaman * simgesi genişliği veya precision bir değişkenden belirlenmesi için olduğunu belirtmek için kullanılır, daha sonra genişlik veya prevision değerin konumunu hemen arkasından görünür * simgesi.Örnek:

_printf_p("%1$*2$s","Hello", 10);

or

_printf_p("%2$*1$s",10, "Hello");

bt7tawza.collapse_all(tr-tr,VS.110).gifKonumsal ve olmayan Konumsal bağımsız karıştırma

Konumsal Parametreler Konumsal olmayan aynı biçim dizesi parametrelerinde ile karışabilir.Ancak, printf_s ve ilgili işlevler Konumsal parametre içeren biçim dizeleri hala Konumsal olmayan parametreleri destekler.

Örnek

// positional_args.c
// Positional arguments allow the specification of the order
// in which arguments are consumed in a formatting string.

#include <stdio.h>

int main(int argc, char *argv[])
{
    int     i = 1,
            j = 2,
            k = 3;
    double  x = 0.1,
            y = 0.2,
            z = 0.3;
    char    *s1 = "abc",
            *s2 = "def",
            *s3 = "ghi";

    // If positional arguments are unspecified,
    // normal input order is used.
    _printf_p("%d %d %d\n", i, j, k);

    // Positional args are numbers indicating the
    // argument enclosed in curly braces.
    _printf_p("%3$d %1$d %2$d\n", i, j, k);

    // The same positional argument may be reused.
    _printf_p("%1$d %2$d %1$d\n", i, j);

    _printf_p("%1$s %2$s %3$s\n", s1, s2, s3);

    _printf_p("%3$s %1$s %2$s\n", s1, s2, s3);
}
  

Ayrıca bkz.

Başvuru

printf alan karakterleri yazın

printf genişlik belirtimi

Duyarlık belirtimi