C++ 本地化库 - 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。

异常

如果抛出异常,则面对象不会发生任何更改,尽管范围内的字符可能已受影响。

数据竞争

访问对象以及范围 [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
locale.htm
广告