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)行如下測(cè)試代碼即可了解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è)參考,也希望大家多多支持腳本之家。
- c++中std::placeholders的使用方法
- c++ std::sort使用自定義的比較函數(shù)排序方式
- C++中std::thread{}和std::thread()用法
- C++中std::tuple和std::pair的高級(jí)用法
- c++之std::get_time和std::put_time
- C++中std::ios_base::floatfield報(bào)錯(cuò)已解決
- C++中std::invalid_argument報(bào)錯(cuò)解決
- C++中std::ifstream::readsome和std::ifstream::read的區(qū)別解析
- C++中的std::funture和std::promise實(shí)例詳解
- C++中std::transform的使用小結(jié)
- C++?std::copy與memcpy區(qū)別小結(jié)
- C++實(shí)現(xiàn)std::set的示例項(xiàng)目
相關(guān)文章
OpenCV實(shí)現(xiàn)人臉識(shí)別簡單程序
這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)人臉識(shí)別簡單程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08全面了解結(jié)構(gòu)體、聯(lián)合體和枚舉類型
下面小編就為大家?guī)硪黄媪私饨Y(jié)構(gòu)體、聯(lián)合體和枚舉類型。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07詳解C語言中strcpy()函數(shù)與strncpy()函數(shù)的使用
這篇文章主要介紹了詳解C語言中strcpy()函數(shù)與strncpy()函數(shù)的使用,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-08-08