std::messages::get
STD::消息::得到,做[医]弄到
Defined in header | | |
---|---|---|
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%29公共成员函数,调用受保护的虚拟成员函数do_get
最派生的类。
2%29从打开的邮件目录中获得一条消息。cat
使用值set
,,,msgid
和dfault
在执行---确定的方式下。如果在目录中找不到预期的消息,则返回dfault
...
参数
cat | - | identifier of message catalog obtained from open() and not yet passed to close() |
---|---|---|
set | - | implementation-defined argument, message set in POSIX |
msgid | - | implementation-defined argument, message id in POSIX |
dfault | - | the string to look up in the catalog (if the catalog uses string look-up) and also the string to return in case of a failure |
返回值
目录中的消息或dfault
如果没有发现。
注记
在POSIX系统上,此函数调用通常转换为catgets()
,以及参数set
,,,msgid
,和dfault
传递给catgets()
就像现在一样。在GNU libstdc++中,此函数忽略set
和msgid
只需调用GNUgettext(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
二次
另见
二次
*。
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。