C ++ vswscanf () - C ++ Standart Kitaplığı

C ++ 'daki vfwscanf () işlevi, bir geniş dize arabelleğinden geniş karakterli dizeyi okumak için kullanılır.

Vfwscanf () işlevi başlık dosyasında tanımlanmıştır.

vswscanf () prototipi

 int vswscanf (const wchar_t * arabellek, const wchar_t * biçimi, va_list vlist);

Vfwscanf () işlevi, verileri geniş dize arabellek tamponundan okur ve değerleri vlist tarafından tanımlanan ilgili konumlara depolar.

vswscanf () Parametreleri

  • buffer: Verilerin okunacağı boş sonlandırılmış geniş dizgenin işaretçisi.
  • format: Girişin nasıl okunacağını belirten boş sonlu bir geniş karakter dizgesine işaretçi. % İle başlayan biçim belirleyicilerinden oluşur.
    Biçim dizesi aşağıdaki bölümlerden oluşur:
    • Her biri giriş akışından bir özdeş karakter tüketen% dışında boşluk olmayan karakterler. Akıştaki bir sonraki karakter eşit değilse, işlevin başarısız olmasına neden olabilir.
    • Boşluk karakteri: Art arda gelen tüm boşluk karakterleri, tek boşluk karakteri olarak değerlendirilir. Ayrıca, ' n', ' t' ve '' aynı kabul edilir.
    • Dönüştürme özelliği: Aşağıdaki biçimi izler:
      • Başlangıcı belirten ilk% karakteri
      • İsteğe bağlı * adı verilen atama bastırma karakteri. Bu karakter mevcutsa, vfwscanf () sonucu herhangi bir alıcı bağımsız değişkene atamaz.
      • Maksimum alan genişliğini belirten isteğe bağlı bir pozitif tam sayı. Mevcut dönüştürme belirtimi tarafından belirtilen dönüştürmeyi yaparken vfwscanf () 'ın kullanmasına izin verilen maksimum karakter sayısını belirtir.
      • Alıcı bağımsız değişkenin boyutunu belirten isteğe bağlı bir uzunluk değiştirici.
      • Bir dönüştürme biçimi belirleyicisi.
    Biçim belirleyicileri
    Biçim Tanımlayıcısı Açıklama
    % Değişmez% ile eşleşir
    c Tek bir karakterle veya birden çok karakterle eşleşir. Genişlik tanımlanmışsa, tam olarak genişlik karakterleriyle eşleşir.
    s Ardışık boşluk olmayan karakterlerle eşleşir. Genişlik tanımlanmışsa, tam olarak genişlik karakterleriyle eşleşir veya ilk boşluk bulunana kadar.
    (Ayarlamak) Verilen karakter kümesinden boş olmayan bir karakter dizisiyle eşleşir. Kümenin başında varsa, kümede olmayan tüm karakterler eşleştirilir.
    d Ondalık bir tamsayı ile eşleşir.
    ben Bir tamsayı ile eşleşir.
    Ö İşaretsiz sekizlik bir tamsayı ile eşleşir.
    X veya x İşaretsiz bir onaltılık tamsayı ile eşleşir.
    sen İşaretsiz bir ondalık tamsayı ile eşleşir.
    A veya a, E veya e, F veya f, G veya g Bir kayan noktalı sayıyla eşleşir.
    n O ana kadar okunan karakter sayısını döndürür.
    p Bir işaretçi tanımlayan bir uygulama tanımlı karakter dizisi ile eşleşir.

    Dolayısıyla, biçim belirticisinin genel biçimi şöyledir:
     % (*) (genişlik) (uzunluk) belirleyicisi
  • vlist: Girişleri almak için bağımsız değişkenlerin listesi.

vswscanf () Dönüş değeri

  • Başarılı olursa, vfwscanf () işlevi başarıyla okunan argüman sayısını döndürür.
  • Başarısızlık durumunda, EOF döndürülür.

Örnek: vswscanf () işlevi nasıl çalışır?

 #include #include #include void read( const wchar_t* buffer, const wchar_t* format,… ) ( va_list args; va_start (args, format); vswscanf (buffer, format, args); va_end (args); ) int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t symbol() = L"u0fd7u00c6u20b9u2127u17d8"; wchar_t str(20); read(symbol, L"%ls", str); wprintf(L"Random Symbols"); for (int i=0; i 

When you run the program, a possible output will be:

 Random Symbols ࿗ Æ ₹ ℧ ៘

Ilginç makaleler...