You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用C++的setw和setfill实现重复字符输出?填充失效如何解决

C++ setw/setfill 填充格式问题修复

错误原因

  • setw 仅对紧随其后的第一个输出操作生效,原第一版代码中setw(10)设置后没有紧跟输出内容,该配置直接失效,导致中间空格没有正常输出
  • setfill 是流全局持久配置,设置后会一直生效直到被修改,原代码的填充配置没有和对应输出操作绑定,因此只有首次填充生效

修复方案

无需重复写多次input变量,可借助长度为0的空字符串配合setw+setfill实现批量输出填充字符:空字符串长度为0,搭配setw(n)和setfill(c)会直接输出n个连续的c字符,无需重复输出目标变量。
修复后代码如下:

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{ 
    char input = 0;
    cout << "Enter the desired character for pattern : "<<endl;
    cin >> input;
    // 输出前3个输入字符
    cout << setfill(input) << setw(3) << input
         // 输出中间6个空格
         << setfill(' ') << setw(6) << ""
         // 输出后3个输入字符
         << setfill(input) << setw(3) << "" << endl;
    return 0;
}

效果验证

输入为*时,输出结果为*** ***,完全匹配要求的aaa______aaa(下划线代表空格)的输出格式。

内容的提问来源于stack exchange,提问作者M.Sohail Shahbaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 06:18:03