C에서 입력 스트림 구분 기호 사용자 정의
추출 연산자(cin)를 사용하여 스트림에서 입력을 읽을 때 기본 동작은 다음과 같습니다. 공백 문자가 나타날 때까지 읽습니다. 그러나 특정 시나리오에서는 사용자 정의 구분 기호를 사용해야 할 수도 있습니다.
cin 구분 기호 변경
표준 라이브러리는 cin과 같은 입력 스트림에 대한 단어 구분 기호입니다. 이는 ctype이라는 사용자 정의 문자 유형 패싯을 추가하기 위해 std::ios_base의 imbue 메소드를 사용하여 달성할 수 있습니다.
예: 콜론을 구분 기호로 사용
의 경우 예를 들어 /etc/passwd와 같은 형식의 파일이 있고 각 필드가 콜론(:) 문자로 구분되어 있다고 가정합니다. 사용자 정의 콜론 기반 구분 기호를 사용하여 각 필드를 별도로 읽으려면 다음 코드를 사용할 수 있습니다.
#include <locale> #include <iostream> struct colon_is_space : std::ctype<char> { colon_is_space() : std::ctype<char>(get_table()) {} static mask const* get_table() { static mask rc[table_size]; rc[':'] = std::ctype_base::space; rc['\n'] = std::ctype_base::space; return &rc[0]; } }; int main() { using std::string; using std::cin; using std::locale; cin.imbue(locale(cin.getloc(), new colon_is_space)); string word; while(cin >> word) { std::cout << word << "\n"; } }
이 예에서는 콜론 문자(:)를 처리하는 colon_is_space라는 사용자 정의 ctype 패싯이 생성됩니다. 개행 문자(n)는 공백입니다. 이 사용자 정의 로케일을 입력 스트림 cin에 추가하면 추출 연산자(>>)가 콜론으로 구분된 각 필드를 읽습니다.
위 내용은 C에서 입력 스트림의 구분 기호를 어떻게 사용자 정의할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!