目录
在C++中,setw()
和setfill()
是两个用于控制输出格式的流操纵符,需要包含头文件#include <iomanip>。
setw()
的用法
setw()
用于设置下一个输出字段的宽度。如果输出内容的实际长度小于设置的宽度,则会在输出内容的前面或后面(取决于填充设置,left
:左对齐填充(默认),right
:右对齐填充)填充。默认情况下,填充字符是空格 。- 例如:
cout << setw(10) << left << "Left"; 输出: "Left" 后面跟着6个空格
cout << setw(10) << right <<"Right"; 输出: "Right"前面跟着5个空格
setfill()
的用法
setfill()
用于设置setw()
操作中使用的填充字符。默认情况下,填充字符是空格,但可以通过setfill()
指定其他字符作为填充 。- 例如:
cout << setfill('*') << setw(10) << "Hello";
会在"Hello"前面填充5个星号(*****Hello
)
适用范围和注意事项:
setw()
和setfill()
通常用于格式化输出,使输出内容在视觉上更加整齐,或满足特定宽度要求。setw()
只影响紧随其后的输出操作,即 cout <<setw(2) <<a <<b;语句中域宽设置仅对a有效,对b无效。如果需要对多个输出进行格式化,需要在每次输出前重复设置。setfill()
的设置会对后续的setw()
操作都有效。(经搜索,setfill
函数的影响范围并不是永久性的,它只对紧随其后的最近的那次setw
操作有效,但运行的代码显示并非如此,如下述代码所示。运行结果为何与搜索结果相悖尚不得知,待后续知识储备完善再做解答)#include <iostream> #include <iomanip> using namespace std; int main() { cout << setw(5) << 111<<endl; cout<< setw(1) << setfill('0') << 11 <<"," << setw(4) << 111 << "," << setw(5) << 111 << endl; cout << setw(5) << 111; return 0; }
运行如图
创作不易,如果我的文章对你有帮助,请点赞、收藏和关注,您的支持是我前进的最大动力。