C++ 本地化庫 - out



描述

它用於轉換輸出字元,並且該函式一旦未能轉換字元或到達 from_end 並且其字元已成功轉換,便停止轉換。

宣告

以下是 std::ctype::out 的宣告。

C++98

	
result out (state_type& state, 
   const intern_type* from, const intern_type* from_end, const intern_type*& from_next,
   extern_type* to, extern_type* to_limit, extern_type*& to_next) const;

C++11

result out (state_type& state, 
   const intern_type* from, const intern_type* from_end, const intern_type*& from_next,
   extern_type* to, extern_type* to_limit, extern_type*& to_next) const;

引數

  • state − 這是一個狀態物件。

  • from, from_end − 用於查詢源序列的初始和最終字元。

  • from_next − 用於在上述範圍內查詢元素。

  • to_next − 用於在上述範圍內查詢元素。

返回值

它返回 codecvt_base::result。

異常

如果丟擲異常,則構面對象不會發生更改,儘管範圍內的字元可能已受影響。

資料競爭

訪問物件和範圍 [low,high) 中的元素。

示例

下面的示例解釋了 std::ctype::out。

#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);

   std::wstring mywstring;
   std::cout << "Enter a sentence: ";
   std::getline (std::wcin,mywstring);

   std::wstring::size_type length = mywstring.length();

   char* pstr= new char [length+1];
   std::mbstate_t mystate = std::mbstate_t();
   const wchar_t* pwc;
   char* pc;

   facet_type::result myresult = myfacet.out (mystate,
      mywstring.c_str(), mywstring.c_str()+length+1, pwc, pstr, pstr+length+1, pc);

   if (myresult==facet_type::ok)
      std::cout << "Translation successful and sentance should be: " << pstr << '\n';

   delete[] pstr;

   return 0;
}

讓我們編譯並執行上述程式,這將產生以下結果:

Enter a sentence: sai ram 
Translation successful and sentance should be: sai ram
locale.htm
廣告
© . All rights reserved.