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

FreeBSD Manual Pages

  
 
  

home | help
std::wbuffe...nvert::rdbuf(3) C++ Standard Libarystd::wbuffe...nvert::rdbuf(3)

NAME
       std::wbuffer_convert::rdbuf - std::wbuffer_convert::rdbuf

Synopsis
	  Defined in header <locale>
	  std::streambuf* rdbuf() const;		    (1)
	  std::streambuf* rdbuf( std::streambuf* bytebuf ); (2)

	  1) returns the pointer to the	underlying byte	stream

	  2) replaces the associated byte stream with bytebuf .

Return value
	  1) the current underlying byte stream

	  2) the previous byte stream

Example
       // Run this code

	#include <iostream>
	#include <sstream>
	#include <locale>
	#include <codecvt>
	int main()
	{
	    // convert UTF-8 to	UCS4
	    std::stringbuf utf8buf(u8"z\u00df\u6c34\U0001d10b");  // or	u8"z"
			       //					    or
       "\x7a\xc3\x9f\xe6\xb0\xb4\xf0\x9d\x84\x8b";
	    std::wbuffer_convert<std::codecvt_utf8<wchar_t>> conv(&utf8buf);
	    std::wistream ucsbuf(&conv);
	    std::cout << "Reading from	a  UTF-8  stringbuf  via  wbuffer_con-
       vert:\n";
	    for(wchar_t	c; ucsbuf.get(c); )
		std::cout << std::hex << std::showbase << c << '\n';

	    // reuse the same wbuffer_convert to handle	UCS4 to	UTF-8 output
	    conv.rdbuf(std::cout.rdbuf());
	    std::wostream out(&conv);
	    std::cout  <<  "Sending  UCS4  data	 to std::cout via wbuffer_con-
       vert:\n";
	    out	<< L"z\u00df\u6c34\U0001d10b\n";
	}

Output:
	Reading	from a UTF-8 stringbuf via wbuffer_convert:
	0x7a
	0xdf
	0x6c34
	0x1d10b
	Sending	UCS4 data to std::cout via wbuffer_convert:
	z

See also
	  constructor	constructs a new wbuffer_convert
			(public	member function)

http://cppreference.com		  2022.07.31	 std::wbuffe...nvert::rdbuf(3)

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

home | help