Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::wctob(3)		      C++ Standard Libary		 std::wctob(3)

NAME
       std::wctob - std::wctob

Synopsis
	  Defined in header <cwchar>
	  int wctob( std::wint_t c );

	  Narrows  a wide character c if its multibyte character equivalent in
       the initial
	  shift	state is a single byte.

	  This is typically possible for the characters	from the ASCII charac-
       ter set,	since
	  most multibyte encodings (such as UTF-8) use single bytes to	encode
       those
	  characters.

Parameters
	  c - wide character to	narrow

Return value
	  EOF  if  c does not represent	a multibyte character with length 1 in
       initial shift
	  state.

	  Otherwise, the single-byte representation of c as unsigned char con-
       verted to int

Example
       // Run this code

	#include <clocale>
	#include <cwchar>
	#include <iostream>

	void try_narrowing(wchar_t c)
	{
	    int	cn = std::wctob(c);
	    if(cn != EOF)
		std::cout << '\'' << int(c) << "' narrowed  to	"  <<  +cn  <<
       '\n';
	    else
		std::cout << '\'' << int(c) << "' could	not be narrowed\n";
	}

	int main()
	{
	    std::setlocale(LC_ALL, "th_TH.utf8");
	    std::cout  <<  std::hex  <<	 std::showbase	<<  "In	Thai UTF-8 lo-
       cale:\n";
	    try_narrowing(L'a');
	    try_narrowing(L'');

	    std::setlocale(LC_ALL, "th_TH.tis620");
	    std::cout << "In Thai TIS-620 locale:\n";
	    try_narrowing(L'a');
	    try_narrowing(L'');
	}

Output:
	In Thai	UTF-8 locale:
	'0x61' narrowed	to 0x61
	'0xe5b'	could not be narrowed
	In Thai	TIS-620	locale:
	'0x61' narrowed	to 0x61
	'0xe5b'	narrowed to 0xfb

See also
	  btowc	 widens	a single-byte narrow character to wide	character,  if
       possible
		 (function)
	  narrow narrows characters
		 (public member	function of std::basic_ios<CharT,Traits>)
	  narrow invokes do_narrow
		 (public member	function of std::ctype<CharT>)

http://cppreference.com		  2022.07.31			 std::wctob(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::wctob&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help