| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 
 | // ctype::narrow example
#include <iostream>       // std::cout, std::getline, std::wcin
#include <locale>         // std::locale, std::ctype, std::use_facet
#include <string>         // std::wstring
int main ()
{
  std::locale loc;
  std::wstring yourname;
  std::cout << "Please enter your name: ";
  std::getline (std::wcin,yourname);
  std::wstring::size_type length = yourname.length();
  std::cout << "The first (narrow) character in your name is: ";
  std::cout << std::use_facet< std::ctype<wchar_t> >(loc).narrow ( yourname[0], '?' );
  std::cout << '\n';
  std::cout << "The narrow transformation of your name is: ";
  char * pc = new char [length+1];
  std::use_facet< std::ctype<wchar_t> >(loc).narrow ( yourname.c_str(), yourname.c_str()+length+1, '?', pc);
  std::cout << pc << '\n';
  return 0;
}
 |