C++中std::setw()的用法解讀
C++中std::setw()用法
std::setw(n)的作用是設(shè)置輸出寬度為n,默認(rèn)為右對(duì)齊,并且用空格填充。
例如:
cout << std::setw(5) << "0" << "1" << endl,該語句就是設(shè)置字符串"0"的輸出寬度為5,默認(rèn)為右對(duì)齊,空格填充。
若想使用其他符號(hào)填充(例如用'*'填充),則可以用cout << std::setw(5) << setfill('*') << "0" << "1" << endl;
如果想修改成左對(duì)齊,則只需要在std::setw(n)之前加上std::left即可。
當(dāng)要輸出的字符串寬度大于setw設(shè)置的寬度n時(shí),直接輸出想要輸出的字符串即可(此時(shí)忽視setw設(shè)置的寬度)。
通過運(yùn)行如下測試代碼即可了解setw()的規(guī)則:
#include <iomanip>
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
/*默認(rèn)為右對(duì)齊,此時(shí)加不加std::right都可以 */
cout << std::setw(5) << "0" << "1" << endl;
cout << std::setw(5) << "00" << "1" << endl;
cout << std::setw(5) << "000" << "1" << endl;
/*用<<left或者std::left改成左對(duì)齊*/
cout << std::left << std::setw(5) << "0" << "1" << endl;
cout << std::left << std::setw(5) << "00" << "1" << endl;
cout << std::left << std::setw(5) << "000" << "1" << endl;
/*當(dāng)要輸出的字符串寬度大于setw設(shè)置的寬度時(shí),直接輸出想要輸出的字符串即可*/
cout << std::right <<std::setw(5) << "0000000" << "1" << endl;
/*用其他符號(hào)填充*/
cout << std::right <<std::setw(5) << setfill('*') << "0" << "1" << endl;
cout << std::left << std::setw(5) << setfill('*') << "0" << "1" << endl;
return 0;
}代碼運(yùn)行結(jié)果:

C++中setw()函數(shù)
定義
C++函setw的行為與在流上調(diào)用n作為參數(shù)的成員寬度一樣,它作為操縱器插入/提?。ㄔ谳斎肓骰蜉敵隽魃喜迦?提?。K糜谠O(shè)置要在輸出操作上使用的字段寬度。
頭文件
頭文件為#include < iomanip >
聲明
setw (int n);
參數(shù)
n 用作字段寬度的字符數(shù)。
返回值
它返回未指定(unspecified),此函數(shù)應(yīng)僅用作流操縱器。
示例
下面的例子說明了setw函數(shù)的用法。
(后面緊跟著的輸出字段長度小于n的時(shí)候,在該字段前面用空格補(bǔ)齊;當(dāng)輸出字段長度大于n時(shí),全部整體輸出。)
#include <iostream>
#include <iomanip>
using namespace std;
void main(){
cout << setw(10) << setiosflags(ios::left)<< 123 << endl; //聲明左對(duì)齊,后面補(bǔ)7個(gè)空格
cout << setw(10) << setiosflags(ios::right) << 123 << endl; //聲明右對(duì)齊,前面補(bǔ)7個(gè)空格
cout << setw(10) << setfill('*') << 123 << endl; //用*星號(hào)而不是空格,來補(bǔ)足10個(gè)位置
}編譯和運(yùn)行上面的程序,將產(chǎn)生以下結(jié)果 :

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Qt重寫QTreeView自繪實(shí)現(xiàn)酷炫樣式
QTreeView,顧名思義,就是一種樹形的控件,在我們需要做類似于文件列表的視圖時(shí),是一個(gè)不錯(cuò)的選擇,下面我們就來看看qt如何重寫QTreeView實(shí)現(xiàn)酷炫樣式,感興趣的可以了解一下2023-08-08
C++教程之a(chǎn)rray數(shù)組使用示例詳解
這篇文章主要為大家介紹了C++教程之a(chǎn)rray數(shù)組使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
CMake語法及CMakeList.txt簡單使用小結(jié)
Cmake主要用于開發(fā)跨平臺(tái)的C++項(xiàng)目,本文主要介紹了CMake語法及CMakeList.txt簡單使用小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2022-05-05
C++?棧和隊(duì)列的實(shí)現(xiàn)超詳細(xì)解析
棧和隊(duì)列,嚴(yán)格意義上來說,也屬于線性表,因?yàn)樗鼈円捕加糜诖鎯?chǔ)邏輯關(guān)系為?"一對(duì)一"?的數(shù)據(jù),但由于它們比較特殊,因此將其單獨(dú)作為一章,做重點(diǎn)講解2022-03-03
C語言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)二叉樹遞歸
這篇文章主要為大家介紹了C語言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)二叉樹遞歸,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

