std::skipws / std::noskipws
std::skipws / std::noskipws (공백 건너뛰기 조작자)
형식화 입력 함수가 선행 공백을 건너뛰는 것(기본으로 켜짐)을 켜거나 끄는 조작자예요. 출력에는 영향이 없어요.
출처: cppreference
본문
<ios> 헤더에 정의돼 있어요.
// (1)
std::ios_base& skipws( std::ios_base& str );
// (2)
std::ios_base& noskipws( std::ios_base& str );
형식화 입력 함수가 선행 공백을 건너뛰는 것(기본으로 켜짐)을 켜거나 끕니다. 출력에는 영향이 없어요.
-
str.setf(std::ios_base::skipws)처럼skipws플래그를 켜요.
-
str.unsetf(std::ios_base::skipws)처럼skipws플래그를 꺼요.
공백 건너뛰기는 std::basic_istream::sentry의 생성자가 수행하는데, skipws가 켜져 있으면 공백을 읽어 버려요.
예제
#include <iostream>
#include <sstream>
int main()
{
std::istringstream s(" x");
char c;
s >> std::noskipws >> c; // 공백 ' ' 을 읽음
std::cout << (c == ' ' ? "space" : "other") << '\n'; // "space"
s >> std::skipws >> c; // 공백 건너뛰고 'x'
std::cout << c << '\n'; // "x"
}