Namespaces
Variants

std::messages<CharT>:: get, std::messages<CharT>:: do_get

From cppreference.net
헤더에 정의됨 <locale>
public :
string_type get ( catalog cat, int set, int msgid, const string_type & dfault ) const ;
(1)
protected :
virtual string_type do_get ( catalog cat, int set, int msgid, const string_type & dfault ) const ;
(2)
1) Public 멤버 함수로서, 가장 파생된 클래스의 protected virtual 멤버 함수 do_get 를 호출합니다.
2) 열린 메시지 카탈로그 cat 에서 set , msgid dfault 값을 사용하여 구현 정의 방식으로 메시지를 획득합니다. 카탈로그에서 예상된 메시지를 찾을 수 없는 경우 dfault 의 사본을 반환합니다.

목차

매개변수

cat - open() 로부터 획득하고 아직 close() 에 전달되지 않은 메시지 카탈로그의 식별자
set - 구현 정의 인자, POSIX에서의 메시지 세트
msgid - 구현 정의 인자, POSIX에서의 메시지 ID
dfault - 카탈로그에서 검색할 문자열(카탈로그가 문자열 검색을 사용하는 경우) 및 실패 시 반환할 문자열

반환값

카탈로그로부터의 메시지 또는 발견된 것이 없는 경우 dfault 의 사본.

참고 사항

POSIX 시스템에서 이 함수 호출은 일반적으로 catgets() 호출로 변환되며, 매개변수 set , msgid , 그리고 dfault catgets() 에 그대로 전달됩니다. GNU libstdc++에서는 이 함수가 set msgid 를 무시하고 단순히 해당 로케일에서 GNU gettext ( dfault ) 를 호출합니다.

예제

다음 예제는 메시지 검색 방법을 보여줍니다: 일반적인 GNU/Linux 시스템에서는 /usr/share/locale/de/LC_MESSAGES/sed.mo 에서 읽어옵니다.

#include <iostream>
#include <locale>
int main()
{
    std::locale loc("de_DE.utf8");
    std::cout.imbue(loc);
    auto& facet = std::use_facet<std::messages<char>>(loc);
    auto cat = facet.open("sed", loc);
    if (cat < 0)
        std::cout << "Could not open german \"sed\" message catalog\n";
    else
        std::cout << "\"No match\" in German: "
                  << facet.get(cat, 0, 0, "No match") << '\n'
                  << "\"Memory exhausted\" in German: "
                  << facet.get(cat, 0, 0, "Memory exhausted") << '\n';
    facet.close(cat);
}

가능한 출력:

"No match" in German: Keine Übereinstimmung
"Memory exhausted" in German: Speicher erschöpft

참고 항목

웹페이지의 텍스트를 한국어로 번역합니다: HTML 태그나 속성은 번역하지 마십시오. 원래 서식을 유지하십시오. ,
,  태그 내부의 텍스트는 번역하지 마십시오.
C++ 관련 용어는 번역하지 마십시오. 정확성과 전문성이 요구됩니다.