輸出的排版:
(1)利用cout.width(n);,可以預留n的空格的版面空間,使得下一次使用cout<<的輸出對象在此n格版面空間向右對齊。若n小於輸出對象所佔的版面空間,則不執行排版。又,一個英文字母或數字佔一個版面空間,一個中文字佔兩個版面空間。程式碼例如:
string a="111";
string b="222";
cout<<a; //顯示111
cout.width(5); //在顯示111後,預留5個版面空間。
cout<<b; //222在預留的版面空間中向右對齊。現在整個螢幕顯示111 222
若要使預留的版面空間以特定字元顯示而非空白字元,則可以利用成員函式fill(特定字元),如:
cout.fill(‘*’); //設要顯示的特定字元為 *
string a="111";
string b="222";
cout<<a;
cout.width(5);
cout<<b; //整個螢幕顯示111**222
註:cout.width();只會影響在此行程式碼後的第一個cout<<輸出,若想要讓其他cout<<輸出也有此排版功能,則在其之前也要加上cout.width();。
(2)利用換行字元’\t’:
程式碼例如:
cout<<"aa\t"<<"bbb"<<endl;
cout<<"aaaaaa\t"<<"bbb"<<endl;
cout<<"aaaaaaaa\t"<<"bbb"<<endl;
顯示如下:
aa bbb
aaaaaa bbb
aaaaaaaa bbb
也就是說,任何字串在加了\t之後,會被放在一個「8個空格寬度」的預留空間,若字串寬度為n個空格寬度,且n<8,則會在此字串之後顯示8-n個空格。若n>8*k(k=1,2,3,4,5……),則在此字串之後顯示8*(k+1)-n個空格。
留言列表