std:: vscanf, std:: vfscanf, std:: vsscanf
|
헤더 파일에 정의됨
<cstdio>
|
||
|
int
vscanf
(
const
char
*
format, std
::
va_list
vlist
)
;
|
(1) | (C++11 이후) |
|
int
vfscanf
(
std::
FILE
*
stream,
const
char
*
format, std
::
va_list
vlist
)
;
|
(2) | (C++11 이후) |
|
int
vsscanf
(
const
char
*
buffer,
const
char
*
format, std
::
va_list
vlist
)
;
|
(3) | (C++11 이후) |
다양한 소스로부터 데이터를 읽어서 format 에 따라 해석하고, 결과를 vlist 로 정의된 위치에 저장합니다.
목차매개변수
사용 가능한 형식 지정자는 다음과 같습니다:
반환값성공적으로 읽은 인수의 개수, 또는 EOF 가 실패 시 발생하는 경우. 참고 사항
이 모든 함수들은 최소한 한 번 이상
va_arg
를 호출하며, 반환 후
예제
이 코드 실행
#include <cstdarg> #include <cstdio> #include <iostream> #include <stdexcept> void checked_sscanf(int count, const char* buf, const char *fmt, ...) { std::va_list ap; va_start(ap, fmt); if (std::vsscanf(buf, fmt, ap) != count) throw std::runtime_error("parsing error"); va_end(ap); } int main() { try { int n, m; std::cout << "Parsing '1 2'... "; checked_sscanf(2, "1 2", "%d %d", &n, &m); std::cout << "success\n"; std::cout << "Parsing '1 a'... "; checked_sscanf(2, "1 a", "%d %d", &n, &m); std::cout << "success\n"; } catch (const std::exception& e) { std::cout << e.what() << '\n'; } } 출력: Parsing '1 2'... success Parsing '1 a'... parsing error 참고 항목
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||