C++ Locale 库 - in
描述
它用于转换字符,一旦转换字符失败,或者一旦到达 from_end 并且其字符转换成功,该函数就会停止转换。
声明
以下是 std::ctype::in 的声明。
C++98
result in (state_type& state,
const extern_type* from, const extern_type* from_end, const extern_type*& from_next,
intern_type* to, intern_type* to_limit, intern_type*& to_next) const;
C++11
result in (state_type& state,
const extern_type* from, const extern_type* from_end, const extern_type*& from_next,
intern_type* to, intern_type* to_limit, intern_type*& to_next) const;
参数
state − 它是一个状态对象。
from, from_end − 用于查找源序列的首尾字符。
from_next − 用于查找上述范围内的元素。
to_next − 用于查找上述范围内的元素。
返回值
它返回 codecvt_base::result。
异常
如果抛出异常,则 facet 对象不会发生任何变化,尽管范围内的字符可能已受到影响。
数据竞争
访问对象和 range [low,high) 中的元素。
示例
在下面的例子中解释了 std::ctype::in。
#include <iostream>
#include <locale>
#include <string>
#include <cwchar>
int main () {
typedef std::codecvt<wchar_t,char,std::mbstate_t> facet_type;
std::locale mylocale;
const facet_type& myfacet = std::use_facet<facet_type>(mylocale);
const char mystr[] = "Tutorialspoint.com";
wchar_t pwstr[sizeof(mystr)];
std::mbstate_t mystate = std::mbstate_t();
const char* pc;
wchar_t* pwc;
facet_type::result myresult = myfacet.in (mystate,
mystr, mystr+sizeof(mystr), pc, pwstr, pwstr+sizeof(mystr), pwc);
if ( myresult == facet_type::ok ) {
std::wcout << L"Translation was successful: ";
std::wcout << pwstr << std::endl;
}
return 0;
}
让我们编译并运行上面的程序,这将产生以下结果 −
Translation was successful: Tutorialspoint.com