Aracılığıyla paylaş


scanf genişlik belirtimi

Biçim dizeleri yorumunu bu bilgiler scanf güvenli sürümleri gibi işlevlerin aile scanf_s.Bu işlevler normalde giriş akışı simgeleri bir dizi bölünmüş varsayalım.Belirteçleri boşluk (boşluk, sekme veya satır) veya bir sayısal veri türü sayısal metne dönüştürülemez ilk karakterine göre belirtildiği gibi doğal sonunda sayısal türler olması halinde ayrılır.Ancak, doğal bir belirteç sonuna önce durdurmak için giriş ayrıştırma neden genişlik belirtimi kullanılabilir.

Genişliği belirtimi oluşan karakter arasında % ve pozitif bir tamsayı olarak adlandırılan içerebilir türü alanında belirleyici genişliği alan ve de alan türü değiştirici düşünülebilir, alanın boyutunu belirten bir veya daha fazla karakter bir olup olmadığının göstergesi gibi tamsayı türü olan kısa veya uzun.Bu tür karakterler boyutu önek olarak adlandırılır.

Genişliği alanı

Genişliği o alan için okumaya en fazla karakter sayısını denetleme pozitif bir ondalık tamsayı bir alandır.En fazla genişliği karakterler dönüştürülür ve karşılık gelen konumunda depolanan argument.Az genişliği karakter olabilir boşluk karakterini (boşluk, sekme veya satır) veya verilen biçimine göre dönüştürülemeyen bir karakter önce oluşursa okuma genişliği ulaşıldı.

Geniþlik özelliðini farklı ve ayrıdır, bu işlevler güvenli sürümleri tarafından gerekli arabellek boyutu bağımsız değişkeni (yani, scanf_s, wscanf_s, vb..).Geniþlik özelliðini 20, aşağıdaki örnekte olduğu kadar gösteren 20 giriş Akıştan okumaya karakterlerdir.Arabellek uzunluğu olası 20 karakteri ek olarak null Sonlandırıcı oda içerir, 21'dir:

char str[21];
scanf_s("%20s", str, 21);

Genişliği alanı kullanılmaz, scanf_s tüm belirteç dizeye okuma girişiminde bulunur.Belirtilen boyut tüm belirteç alacak kadar büyük değilse, hiçbir şey hedef dize olarak yazılır.Genişliği alan belirtilmişse, ilk genişliği null Sonlandırıcı hedef dizesiyle simge karakter yazılır.

Boyutu öneki

İsteğe bağlı önekleri h, m, ll, I64, ve m boyutunu belirtmek argument (uzun veya kısa, tek baytlı karakter veya bunları değiştirme türü karakter kümesine bağlı olarak geniş karakter).Bu biçim belirtimi karakterler kullanılan yazı karakterleri ile scanf veya wscanf yorumunu bağımsız değişkenler aşağıdaki tabloda gösterildiği gibi belirtmek için İşlevler.Önekini yazın I64 Microsoft uzantısıdır ve ANSI uyumlu değil.Yazı karakterleri ve anlamları "Scanf işlevleri için karakterleri yazın" tabloda açıklanan scanf alan karakterleri yazın.

[!NOT]

h, m, ve m önekleri olan veri türü ile birlikte kullanıldığında Microsoft Uzantıları char.

Scanf ve wscanf biçim türü belirteçleri boyutu önekleri

Belirtmek için

Önek kullanın

Tür belirticisiyle

double

l

e, E, f, g, or G

uzun çift (çift olarak aynı)

L

e, E, f, g, or G

uzun tamsayı

l

d, i, o, x, or X

işaretsiz uzun tamsayı

l

u

uzun uzun

ll

d, i, o, x, or X

short int

h

d, i, o, x, or X

işaretsiz kısa tamsayı

h

u

__int64

I64

d, i, o, u, x, or X

Tek baytlık karakter ilescanf

h

c or C

Tek baytlık karakter ilewscanf

h

c or C

Geniş bir karakterlescanf

l

c or C

Geniş bir karakterlewscanf

l

c, or C

Tek baytlık – karakter dizesi ilescanf

h

s or S

Tek baytlık – karakter dizesi ilewscanf

h

s or S

Geniş karakter dizesi ilescanf

l

s or S

Geniş karakter dizesi ilewscanf

l

s or S

Aşağıdaki örnekler h ve m ile scanf_s işlevleri ve wscanf_s işlevleri:

scanf_s( "%ls", &x, 2 );     // Read a wide-character string
wscanf_s( "%hC",&x, 2 );    // Read a single-byte character

Güvenli olmayan bir işlevi kullanarak, scanf ailesi, önceki bağımsız değişken arabelleği uzunluğunu gösteren boyut parametresini atlayın.

Okuma sınırlandırılmamış dize

Boşluk ile sınırlı olmayan dizeler okumaya karakterleri, karakter ayraç kümesi ([]) için yerine s (dize) tür karakteri.Parantez içinde karakter kümesi denetim dize olarak adlandırılır.İlgili giriş alan denetim dizesinde görünmez ilk karakter için okuma.İlk karakter kümesindeki şapka işareti olup olmadığını (^), ters bir etkisi: giriş alanını karakter kümesini geri kalanı gibi görünüyor ilk karakter için salt okunur.

Dikkat edin % [a-z ve [z-a] % eşdeğer olarak yorumlanan %[abcde...z.Bu, ortak bir scanf işlevi uzantısı ancak ANSI standart gerekli olmadığı, Not.

Okuma Sonlandırılmamış dize

Bir dize Sonlandırıcı boş karakter ('\0') depolamadan depolamak için belirtimi kullanmak %nc burada n ondalık tamsayıdır.Bu durumda, c tür karakteri bağımsız değişken bir imleç bir karakter dizisi olduğunu gösterir.Sonraki n karakter girdiden belirtilen konuma okunur ve hiç boş karakter ('\0') eklenir.n belirtilmezse, varsayılan değer olan 1.

Scanf alan okuma durduğunda

scanf İşlevi karakter her giriş alanını tarar.Çeşitli nedenlerle için bir boşluk karakteri ulaşmadan önce belirli bir giriş alanı okuma durabilir:

  • Belirtilen genişlik ulaşıldı.

  • Sonraki karaktere dönüştürülemez belirtildiği gibi.

  • Bir karakterle eşleştirmek için beklenen denetim ile sonraki karakter çakışıyor.

  • Bir sonraki karakteri, belirli karakter kümesinde görünmesini başarısız olur.

Herhangi bir nedenle için scanf işlevini durdurur bir giriş metin alanı okuma, sonraki giriş alanını ilk okunmamış karakteri başlamak için kabul edilir.Çakışan karakter varsa, kabul okunmamış ve sonraki giriş alanın ilk karakteri veya giriş akışı üzerinde sonraki işlemleri ilk karakteri.

Ayrıca bkz.

Başvuru

scanf, _scanf_l, wscanf, _wscanf_l

scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l

Biçim belirtimi alanları: scanf ve wscanf işlevleri

scanf alan karakterleri yazın