C++ Locale Library - out



Description

It used to translate out characters and the function stops converting as soon as it fails to convert a character, or once from_end is reached and its character is successfully converted.

Declaration

Following is the declaration for 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;

Parameters

  • state − It is a state object.

  • from, from_end − It is used to find initial and final characters of the source sequence.

  • from_next − It is used to find an element in the above range.

  • to_next − It is used to find an element in the above range.

Return Value

It returns codecvt_base::result.

Exceptions

If an exception is thrown, there are no changes in the facet object, although characters in the range may have been affected.

Data races

The object, and the elements in the range [low,high), are accessed.

Example

In below example explains about 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;
}

Let us compile and run the above program, this will produce the following result −

Enter a sentence: sai ram 
Translation successful and sentance should be: sai ram
locale.htm
Advertisements