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

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

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C++教程之a(chǎn)rray數(shù)組使用示例詳解
這篇文章主要為大家介紹了C++教程之a(chǎn)rray數(shù)組使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
CMake語法及CMakeList.txt簡單使用小結(jié)
Cmake主要用于開發(fā)跨平臺的C++項目,本文主要介紹了CMake語法及CMakeList.txt簡單使用小結(jié),具有一定的參考價值,感興趣的可以了解一下2022-05-05
C語言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)二叉樹遞歸
這篇文章主要為大家介紹了C語言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)二叉樹遞歸,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05

