转载:
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];
}
}