namespace std {
int vswscanf(const wchar_t* s, const wchar_t* format, va_list arg);
}
概要
可変引数リストva_listを使用し、書式を指定してワイド文字列領域から入力する。
戻り値
swscanf()と同じ。
備考
- この関数は
va_endマクロを呼び出さないため、呼び出し側でargに対してva_endを実行する必要がある - C++11で、参照するC標準ライブラリがC99へ更新されたことにともなって追加された
例
#include <cwchar>
#include <cstdarg>
#include <iostream>
int parse(const wchar_t* s, const wchar_t* format, ...)
{
std::va_list args;
va_start(args, format);
int count = std::vswscanf(s, format, args);
va_end(args);
return count;
}
int main()
{
int a = 0;
int b = 0;
int count = parse(L"1 2", L"%d %d", &a, &b);
std::wcout << count << L": " << a << L' ' << b << std::endl;
}
出力
2: 1 2
バージョン
言語
- C++11
処理系
- Clang: 5.0 ✅
- GCC: 5.1 ✅
- Visual C++: 2019 ✅
関連項目
swscanfstd::vsscanf(): マルチバイト文字列版