L1-008 求整数段和 c++实现 测试点全过 来学习如何控制输入输出流的格式叭

目录

代码实现

 iomani讲解

具体

setw

setprecision

setfill

setiosflags

向左对齐

向右对齐


代码实现

#include<iostream>
#include<iomanip>
using namespace std;

int main(){
    int A,B;
    cin>>A>>B;
    int sum=0,j=0;
    for(int i=B-A;i>=0;i--,j++){
        if(j%5==0&&j!=0)
            cout<<endl;
        cout<<std::right<<setw(5)<<(A+j);
        sum+=(A+j);
    }
    cout<<endl;
    cout<<"Sum = "<<sum;
    return 0;
}

 iomani讲解

首先,iomanip的英文缩写是 Input/Output Manipulators。

区别:

iomanipiostream 都是 C++ 中的输入输出库,但它们的作用是不同的。

iostream 库用于控制台或文件的输入输出。它包含了 std::cinstd::cout 等对象,用于读取和输出数据。

iomanip 库则用于控制输入输出的格式。它包含了一些流操作符、格式标志和流控制符等,可以帮助您设置输出的精度、字段宽度、填充字符、对齐方式等。

因此,虽然 iostreamiomanip 两个库都用于输入输出,但它们的作用是不同的。iostream 负责数据的输入输出,而 iomanip 则负责输入输出的格式控制。

具体

setw

std::setw() 函数用于设置输出字段的宽度。它接受一个整数参数,表示字段宽度。如果输出字段的宽度小于设置的宽度,将使用填充字符填充。默认的填充字符是空格。

set wide

#include <iostream>
#include <iomanip>

int main() {
    int num = 123;
    std::cout << std::setw(5) << num << std::endl; // 输出:"  123"
    return 0;
}

setprecision

std::setprecision() 函数用于设置浮点数的输出精度。它接受一个整数参数,表示要输出的小数位数。

precision精度n.

#include <iostream>
#include <iomanip>

int main() {
    double num = 3.14159265358979323846;
    std::cout << std::setprecision(4) << num << std::endl; // 输出:"3.142"
    return 0;
}

setfill

std::setfill() 函数用于设置填充字符。它接受一个字符参数,表示要使用的填充字符。

#include <iostream>
#include <iomanip>

int main() {
    int num = 123;
    std::cout << std::setfill('0') << std::setw(5) << num << std::endl; // 输出:"00123"
    return 0;
}

setiosflags

std::setiosflags() 函数用于设置流格式标志。它接受一个格式标志参数,表示要设置的标志。

setiosflags 中,IOS 是指 Input/Output Stream 的缩写,即输入/输出流。

在 C++ 标准库中,IOSios_base 类的一个别名,它定义了输入/输出流的一些基本属性和行为。

#include <iostream>
#include <iomanip>

int main() {
    int num = 123;
    std::cout << std::setiosflags(std::ios::hex | std::ios::showbase) << num << std::endl; // 输出:"0x7b"
    return 0;
}

向左对齐

可以使用 std::left 流格式标志设置左对齐。当使用 std::setw() 函数设置字段宽度时,输出的内容会被放置在字段的左侧。

#include <iostream>
#include <iomanip>

int main() {
    int num = 123;
    std::cout << std::left << std::setw(5) << num << std::endl; // 输出:"123  "
    return 0;
}

向右对齐

可以使用 std::right 流格式标志将输出格式恢复为向右对齐。

#include <iostream>
#include <iomanip>

int main() {
    int num = 123;
    std::cout << std::left << std::setw(5) << num << std::endl; // 输出:"123  "
    std::cout << std::right << std::setw(5) << num << std::endl; // 输出:"  123"
    return 0;
}

可以使用 std::setw() 函数设置字段宽度,同时使用 std::setfill() 函数设置填充字符。如果设置的字段宽度大于输出内容的长度,则会使用填充字符在左边填充。

#include <iostream>
#include <iomanip>

int main() {
    int num = 123;
    std::cout << std::setw(5) << std::setfill(' ') << num << std::endl; // 输出:"  123"
    return 0;
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天写bug的屑闲鱼

请我杯饮料吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值