首页 > 编程语言 >C++中setw和setfill函数的结合应用

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

时间:2024-01-17 17:44:28浏览次数:26  
标签:10 填充 C++ setw 宽度 include 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('*') 恢复填充字符为默认的空格。这种设置填充字符的方式在多次输出时很有用。

标签:10,填充,C++,setw,宽度,include,setfill
From: https://www.cnblogs.com/thisiscgl/p/17970530

相关文章

  • KY20 完数与盈数C++
    练习使用向量vector容器。遍历每个数取余就好了。然后记录下来。#include<iostream>#include<vector>usingnamespacestd;intmain(){vector<int>B;vector<int>C;for(inti=2;i<=60;i++){vector<int>A;intm;......
  • C++ STL标准模板库
    目录简介容器(Containers)迭代器(Iterators)算法(Algorithms)函数对象(FunctionObjects)适配器(Adaptors)分配器(Allocators)std::min_element()简介C++中的STL(标准模板库)可以分为六个部分,分别是容器(Containers)、迭代器(Iterators)、算法(Algorithms)、函数对象(FunctionObjects)、适配器(Adapto......
  • 前缀和求解(c++)
    数组ana1a2...an前缀和Si=a1+a2+...+ai①如何求②作用//一维数组前缀和的计算#include<iostream>usingnamespacestd;constintN=100010;inta[N],s[N];intn,m;intmain(){scanf("%d%d",&n,&m);for(inti=1;i<=n;......
  • C++11稳定性与兼容性机制
    字符串的原始字面量使用样例:R“xxx(rawstring)xxx”其中括号内的即是原始字面量,可以直接表示字符串而不需要做转义,需注意括号前后的xxx字符串会被忽略且必须一样stringstr="D:\hello\world\test.text";//1cout<<str<<endl;stringstr1="D:\\hello\\world\\tes......
  • c++语法
    基本语法C++是一种通用的编程语言,具有面向对象的特性。以下是一些C++的基本语法:注释:在C++中,注释可以使用//表示单行注释,或者使用/**/表示多行注释。cppCopycode/*这是多行注释*/头文件:C++中使用头文件来引入库和声明函数。#include<iostream>//输......
  • c++基础
    c++基础#include<iostream>usingnamespacestd;//定义类AAclassAA{private:inta;//私有数据成员apublic://构造函数,用于初始化aAA(intvalue){a=value;}//公有成员函数,用于获取a的值intGetValue(){retur......
  • C++:GDAL中CreateCopy()函数生成的栅格图像如何修改波段数?
      本文介绍基于C++语言GDAL库,为CreateCopy()函数创建的栅格图像添加更多波段的方法。  在C++语言的GDAL库中,我们可以基于CreateCopy()函数与Create()函数创建新的栅格图像文件。其中,CreateCopy()函数需要基于一个已有的栅格图像文件作为模板,将模板文件的各项属性信息(例如空......
  • C++学习日记 2024-1-16
    开始学习C++几天了,之前没有记录,从现在开始,记录一下学习过程复习与回忆:1.引用与指针共同优点:只用引用与指针,在传递参数时,可以减少拷贝,减少内存消耗,提高效率指针优点:指针比引用更强大,所有引用能做的事,指针都能做,指针缺点:危险,指针可以为空,指针指向地址,同一地址可以......
  • C++(静态成员函数、静态成员变量)
    目录静态成员函数(StaticMemberFunctions)静态成员变量(StaticMemberVariables)在C++中,静态成员函数和静态成员变量是与类相关联而不是与类的实例相关联的。它们属于类而不是类的实例,并且可以通过类名访问,而不需要创建类的实例。静态成员函数(StaticMemberFunctions)静态成员......
  • c++程序加速方法
    1.将反复使用的数据存放在全局变量里面。需要重复使用的数据,比如加载的图片,CSV文件等数据,存放在全局变量里面,每次加载DLL时,只加载一次,直到卸载DLL,这些数据一直保持在内存中,避免重复加载,经过测试,这样处理之后,漏装检测的时间由2.5S降低到了1.5S,因为反复读取文件,图片是一个很消耗时......