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

NAME
     std::setw - std::setw

Synopsis
	Defined in header <iomanip>
	/* unspecified */ setw( int n );

	When  used  in	an expression out << std::setw(n) or in >> std::setw(n),
     sets the width
	parameter of the stream out or in to exactly n.

	Some operations reset the width to zero (see below),  so  std::setw  may
     need to be
	repeatedly called to set the width for multiple operations.

Parameters
	n - new value for width

Return value
	An object of unspecified type such that

	  *  if  out is an object of type std::basic_ostream<CharT, Traits>, the
     expression
	    out << setw(n)
	       * has type std::basic_ostream<CharT, Traits>&
	       * has value out
	       * behaves as if it called f(out, n)
	  * if in is an object of type	std::basic_istream<CharT,  Traits>,  the
     expression in
	    >> setw(n)
	       * has type std::basic_istream<CharT, Traits>&
	       * has value in
	       * behaves as if it called f(in, n)

	where the function f is defined as:

      void f(std::ios_base& str, int n)
      {
	  // set width
	  str.width(n);
      }

Notes
	The width property of the stream will be reset to zero (meaning "unspec-
     ified") if
	any of the following functions are called:

	  * Input

	  * operator>>(basic_istream&, basic_string&)
	  * operator>>(basic_istream&, char*)
	  * Output

	  *  Overloads of basic_ostream::operator<<() that take arithmetic types
     or void
	    pointers (at Stage 3 of num_put::put())
	  *  operator<<(basic_ostream&,  char)	and   operator<<(basic_ostream&,
     char*)
	  * operator<<(basic_ostream&, basic_string&)
	  * std::put_money (inside money_put::put())
	  * std::quoted (when used with an output stream)

	The exact effects this modifier has on the input and output vary between
     the
	individual I/O functions and are described at each operator<< and opera-
     tor>>
	overload page individually.

Example
     // Run this code

      #include <iomanip>
      #include <iostream>
      #include <sstream>

      int main()
      {
	  std::cout << "no setw: [" << 42 << "]\n"
		    << "setw(6): [" << std::setw(6) << 42 << "]\n"
		    << "no setw, several elements: [" << 89 << 12 << 34 << "]\n"
		    <<	"setw(6),  several elements: [" << 89 << std::setw(6) <<
     12 << 34 << "]\n";

	  std::istringstream is("hello, world");
	  char arr[10];

	  is >> std::setw(6) >> arr;
	  std::cout << "Input from \"" << is.str() << "\" with setw(6) gave \""
		    << arr << "\"\n";
      }

Output:
      no setw: [42]
      setw(6): [    42]
      no setw, several elements: [891234]
      setw(6), several elements: [89	1234]
      Input from "hello, world" with setw(6) gave "hello"

	Defect reports

	The following behavior-changing defect	reports  were  applied	retroac-
     tively to
	previously published C++ standards.

	  DR	 Applied  to	      Behavior as published	     Correct be-
     havior
	LWG 183 C++98	   setw could only be used with streams of  usable  with
     any
			   type  std::ostream  or  std::istream        character
     stream

See also
	width	   manages field width
		   (public member function of std::ios_base)
	setfill    changes the fill character
		   (function template)
	internal   sets the placement of fill characters
	left	   (function)
	right
	showbase   controls whether prefix is used to indicate numeric base
	noshowbase (function)

http://cppreference.com 	   2024.06.10			    std::setw(3)

home | help