当前位置: 代码迷 >> 综合 >> setw()设置输出域宽
  详细解决方案

setw()设置输出域宽

热度:97   发布时间:2023-11-25 22:53:14.0

转载:

https://blog.csdn.net/weixin_38314865/article/details/104647064?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163055829716780261976697%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163055829716780261976697&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-104647064.pc_search_result_control_group&utm_term=setw&spm=1018.2226.3001.4187

用法:

setw() 用于控制输出之间的间隔

#include <iomanip>
using std::setw;cout<<'s'<<setw(8)<<'a'<<endl;

 

s和a之间有7个空格,cout<<'s'<<setw(8)<<'a'<<endl;的意思是s后面输出8个字符,其中a占一个字符,剩余7个字符用空格填充

setw()默认填充的内容为空格,可以setfill()设置其他字符填充。

 cout<<'s'<<setfill('*')<<setw(8)<<'a'<<endl;

 

 setw()默认为右对齐,例如下面例子:

    cout << std::setw(5) << "1" << endl;
    cout << std::setw(5) << "10" << endl;
    cout << std::setw(5) << "100" <<endl;
    cout << std::setw(5) << "1000" <<endl;

 

 如需左对齐,则: 

    cout << std::left<< std::setw(5) << "1" << endl;
    cout << std::left<< std::setw(5) << "10" << endl;
    cout << std::left<< std::setw(5) << "100" <<endl;
    cout << std::left<< std::setw(5) << "1000" <<endl;

 

 例子:

洛谷:马的遍历

输出格式要求(左对齐,宽 5 格,不能到达则输出 -1)

for(int i=0;i<=n;i++){for(int j=0;j<=m;j++){
cout<<left<<setw(5)<<d[i][j];
}
}