當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ vswscanf()用法及代碼示例


C++中的vfwscanf()函數用於將格式化的數據從寬字符串讀取到變量參數列表中。它還從寬字符串緩衝區讀取寬字符串。此函數從ws讀取數據,並根據格式將其存儲到arg所標識的變量參數列表中的元素所指向的位置。它在庫文件中定義。

用法:

int vswscanf( const wchar_t* ws, const wchar_t* format, va_list arg )

參數:該函數接受三個強製性參數,如下所述:


  • ws:指向空終止的寬字符串的指針以讀取數據
  • format:指向以空值結尾的寬字符串的指針,該字符串指定如何讀取輸入
  • arg:標識用va_start初始化的變量參數列表的值。

返回值:該函數返回兩個值,如下所示:

  • 成功時,它返回成功讀取的參數數量。
  • 如果失敗,則返回EOF

以下示例程序旨在說明上述函數:
程序1:

// C++ program to illustrate the 
// vswscanf() function 
#include <bits/stdc++.h> 
using namespace std; 
  
// ws:pointer to the wide string 
// format:to read the input 
void wideMatch(const wchar_t* ws, const wchar_t* format, ...) 
{ 
    va_list arg; 
  
    // A function that invokes va_start 
    // shall also invoke va_end before it returns. 
    va_start(arg, format); 
  
    // vswscanf() reads formatted data from wide 
    // string into variable argument list 
    vswscanf(ws, format, arg); 
    va_end(arg); 
} 
  
// Driver code 
int main() 
{ 
    setlocale(LC_ALL, "en_US.UTF-8"); 
  
    // initialize the buffer 
    wchar_t wideS[] = L"GFG"; 
    wchar_t string[20]; 
  
    wideMatch(wideS, L"%ls", string); 
    wprintf(L"Random Symbols are:\n"); 
  
    // print all the symbols 
    for (int i = 0; i < wcslen(string); i++) { 
        putwchar(string[i]); 
        putwchar(' '); 
    } 
  
    return 0; 
}
輸出:
Random Symbols are:
G F G

程序2:

// C++ program to illustrate the 
// vswscanf() function 
  
#include <bits/stdc++.h> 
using namespace std; 
  
void WideString(const wchar_t* ws, const wchar_t* format, ...) 
{ 
    va_list arg; 
    // A function that invokes va_start 
    // shall also invoke va_end before it returns. 
    va_start(arg, format); 
  
    // vswscanf() reads formatted data from wide 
    // string into variable argument list 
    vswscanf(ws, format, arg); 
    va_end(arg); 
} 
  
// Driver code 
int main() 
{ 
    int value; 
  
    // initialize the buffer 
    wchar_t wideS[] = L"100 websites of GeekforGeeks"; 
  
    WideString(wideS, L" %d %ls ", &value, wideS); 
  
    // print all the symbols 
    wprintf(L"Best:%ls\nQuantity:%d\n", wideS, value); 
  
    return 0; 
}
輸出:
Best:websites
Quantity:100


相關用法


注:本文由純淨天空篩選整理自AmanSrivastava1大神的英文原創作品 vswscanf() Function in C/C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。