C++中setw和setfill函数的结合应用

一、头文件
  头文件为#include <iomanip>
  其中io代表输入输出,manip是manipulator(操纵器)的缩写
  iomanip的作用:
  主要是对cin,cout之类的一些操纵运算子,比如setfill,setw,setbase,setprecision等等。它是I/O流控制头文件,就像C里面的格式化输出一样。

二、setw函数

  setw 是 C++ 中 <iomanip> 头文件中定义的一个格式控制符。它用于设置输出流中下一个字段的宽度(即列的宽度)。具体而言,setw 允许你指定输出流中下一个字段(例如,一个整数或字符串)的最小宽度,如果该字段的实际宽度小于指定的宽度,则在左侧或右侧用填充字符进行填充。

代码示例如下

#include <iostream> #include <iomanip> using namespace std; int main() { int num = 10; cout<<setw(10)<<num<<endl; cout<<"0123456789"<<endl; return 0; }

 

 在这个例子中,setw(10) 指定了下一个字段(num)的宽度为 10,如果 num 的宽度小于 10,则在左侧用空格进行填充,使总宽度为 10。

 

三、setfill函数

  setfill 是 C++ 中 <iomanip> 头文件中定义的另一个格式控制符,它用于设置填充字符。

  当结合 setw 使用时,setfill 允许你指定用于填充字段的字符。默认情况下,填充字符是空格。

函数示例:

#include <iostream> #include <iomanip> using namespace std; int main() { int num = 10; cout<<setw(10)<<num<<endl; cout<<"0123456789"<<endl; cout<<setw(10)<<setfill('*')<<num<<endl; return 0; }

在这个例子中,setfill('*') 设置了填充字符为 ''. 如果 num 的宽度小于 10,则在左侧用 '*'  进行填充,使总宽度为 10。

你可以在 setw 和实际输出值之间使用 setfill 来指定填充字符。在上面的例子中,setfill('*') 只影响其后的一个 setw(10),而不是整个输出流。

 

setfill 还可以与其他输出流操纵符一起使用,以改变填充字符的范围。

#include <iostream> #include <iomanip> using namespace std; int main() { int num = 10; cout<<setw(10)<<num<<endl; cout<<"0123456789"<<endl; cout<<setw(10)<<setfill('*')<<num<<endl; cout<<setw(10)<<setfill('*')<<num<<setw(10)<<"test"<<setfill('*')<<endl; return 0; }

 

 在这个例子中,std::setfill('*') 恢复填充字符为默认的空格。这种设置填充字符的方式在多次输出时很有用。


__EOF__

本文作者C_gl
本文链接https://www.cnblogs.com/thisiscgl/p/17970530.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   执~念  阅读(1191)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示