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

C ++ 'daki vwscanf () işlevi, stdin'den geniş karakter dizgesini okumak için kullanılır.

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

vwscanf () prototipi

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

Vwscanf () işlevi verileri stdin'den okur ve değerleri vlist tarafından tanımlanan ilgili konumlara depolar.

vwscanf () Parametreleri

  • 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, vwscanf () 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 belirtimiyle belirtilen dönüştürmeyi yaparken vwscanf () 'ı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.

vwscanf () Dönüş değeri

  • Başarılı olursa, vwscanf () 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: vwscanf () işlevi nasıl çalışır?

 #include #include #include void read( const wchar_t* format,… ) ( va_list args; va_start (args, format); vwscanf (format, args); va_end (args); ) int main () ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t name(50); wprintf(L"What is your name? "); read(L" %ls", name); wprintf(L"Hello %ls", name); return 0; )

Programı çalıştırdığınızda, olası bir çıktı:

Adın ne? Götz Merhaba Götz

Ilginç makaleler...