1. 程式人生 > >輸出格式控制setfill和setw使用

輸出格式控制setfill和setw使用



注意問題:

所使用的標頭檔案為iomanip.h

例如:
cout<<'s'<<setw(8)<<'a'<<endl;
則在螢幕顯示
s        a 
//s與a之間有7個空格,setw()只對其後面緊跟的輸出產生作用,如上例中,表示'a'共佔8個位置,不足的用空格填充。若輸入的內容超過setw()設定的長度,則按實際長度輸出。
setw()預設填充的內容為空格,可以setfill()配合使用設定其他字元填充。

cout<<setfill('*')<<setw(5)<<'a'<<endl;
則輸出:
****a //4個*和字元a共佔5個位置。

ep:

[cpp] view plaincopyprint?在CODE上檢視程式碼片派生到我的程式碼片
  1. <span style="font-size: 14px;">// test_max.cpp : 定義控制檯應用程式的入口點。
  2. #include "stdafx.h"
  3. #include <iostream>
  4. #include <iomanip>                //setw(),setfill所在標頭檔案   
  5. usingnamespace std;  
  6. class NUM  
  7. {  
  8. public:  
  9.     NUM(int i):nm(i){}  
  10.     void incr() const
  11.     {  
  12.         nm++;  
  13.     }  
  14.     void decr() const
  15.     {  
  16.         nm--;  
  17.     }  
  18. public:  
  19.     mutableint nm;  
  20. };  
  21. int main(void)  
  22. {  
  23.     NUM a(0);  
  24.     string str="";  
  25.     for(int i=0;i<5;i++)  
  26.     {  
  27.         a.incr();  
  28.         cout<<setfill('*')<<setw(a.nm)<<str.c_str()<<endl;  
  29.     }  
  30.     for(int i=0;i<5;i++)  
  31.     {  
  32.         a.decr();  
  33.         cout<<setw(a.nm)<<str.c_str()<<setfill('*')<<endl;  
  34.     }  
  35.     system("pause");  
  36.     return 0;  
  37. }</span>  
<span style="font-size: 14px;">// test_max.cpp : 定義控制檯應用程式的入口點。

#include "stdafx.h"
#include <iostream>
#include <iomanip>				//setw(),setfill所在標頭檔案	
using namespace std;

class NUM
{
public:
	NUM(int i):nm(i){}
	void incr() const
	{
		nm++;
	}
	void decr() const
	{
		nm--;
	}
public:
	mutable int nm;
};

int main(void)
{
	NUM a(0);

	string str="";
	for(int i=0;i<5;i++)
	{
		a.incr();
		cout<<setfill('*')<<setw(a.nm)<<str.c_str()<<endl;
	}
	for(int i=0;i<5;i++)
	{
		a.decr();
		cout<<setw(a.nm)<<str.c_str()<<setfill('*')<<endl;
	}

	system("pause");
	return 0;
}</span>