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
廣告

© . All rights reserved.