当前位置: 首页 > news >正文

【C++✨】多种 C++ 解法固定宽度右对齐输出(每个数占 8 列)

题目概述

  • 输入:一行三个整数 a b c(空格分隔)。
  • 输出:一行,依次输出三数;每个数占 8 个字符宽度且右对齐,三个数之间一个空格
  • 数字超出 8 位时不截断,照常完整输出。

关键点

  • 右对齐 + 固定最小宽度 8;不足在左侧补空格。
  • 三个数之间仅放一个空格;行末不要多余空格。
  • 下例中用 long long 覆盖范围更稳(当然用 int 也可)。

方法一:<iomanip>setw(推荐)

#include <iostream>
#include <iomanip>
using namespace std;int main() {long long a[3];cin >> a[0] >> a[1] >> a[2];cout << setw(8) << a[0] << " "<< setw(8) << a[1] << " "<< setw(8) << a[2] << '\n';return 0;
}

要点setw(8) 表示至少占 8 列,默认右对齐;宽度不足左侧补空格,超出不截断。


方法二:C 风格 printf

#include <cstdio>int main() {long long a[3];if (scanf("%lld %lld %lld", &a[0], &a[1], &a[2]) == 3) {// %8lld => 右对齐、宽度为 8printf("%8lld %8lld %8lld\n", a[0], a[1], a[2]);}return 0;
}

要点%8lld 右对齐且宽度 8。


方法三:手工补空格(不依赖格式库)

#include <iostream>
#include <string>
using namespace std;string rightPad8(long long x) {string s = to_string(x);int pad = 8 - (int)s.size();if (pad < 0) pad = 0;                // 超过 8 位不补return string(pad, ' ') + s;         // 左侧补空格
}int main() {long long a[3];cin >> a[0] >> a[1] >> a[2];cout << rightPad8(a[0]) << " "<< rightPad8(a[1]) << " "<< rightPad8(a[2]) << '\n';return 0;
}

要点:把数字转字符串,计算需要补的空格数量并在左侧补齐。


方法四:ostream::width()(流对象原生方法)

#include <iostream>
using namespace std;int main() {long long a[3];cin >> a[0] >> a[1] >> a[2];cout.width(8); cout << a[0] << " ";cout.width(8); cout << a[1] << " ";cout.width(8); cout << a[2] << '\n';return 0;
}

要点width(8) 仅对下一次插入有效,需每次设置。


测试样例

输入

123456789 0 -1

输出

123456789        0       -1

编译与运行(Dev-C++ / g++)

  • 直接把任一方法保存为 main.cpp,在 Dev-C++ 中新建控制台项目编译运行即可。
  • 命令行(可选):
g++ -std=c++11 -O2 -pipe -o main main.cpp
./main
http://www.dtcms.com/a/337307.html

相关文章:

  • 常见的光源频闪控制方式
  • GitHub 热榜项目 - 日榜(2025-08-18)
  • 为什么有些相机“即插即用”,而有些则需要采集卡?
  • 联动无影(TscanPlus)送激活码
  • 短剧小程序系统开发:推动短剧行业规范化与标准化发展
  • 【计算机网络】TCP/IP
  • 决策树简单实战
  • 【github-action 如何为github action设置secrets/environment】
  • 《软件工程导论》实验报告六 设计建模工具的使用(二)
  • 蓝牙AOA定位技术在智慧仓储中的优势与挑战
  • Python 面向对象三大特性详解(与 C++ 对比)
  • (nice!!!)(LeetCode 每日一题) 679. 24 点游戏 (深度优先搜索)
  • 华曦达港股IPO观察丨以创新研发为笔,构建AI Home智慧生活新蓝图
  • 图形自动化:pynput实现Win11系统动作点击录制与回放
  • 【HarmonyOS】应用设置全屏和安全区域详解
  • 广州曼顿智能断路器:让用电更聪明,生活更安心!
  • Java面试宝典:Redis高级特性和应用(发布 订阅、Stream)
  • Redis面试精讲 Day 25:Redis实现分布式Session与购物车
  • Redis---持久化策略
  • SSM-组件的批量扫描
  • 时、分、秒、倒计时组件
  • Redis 客户端安装方法
  • Spring Boot + Spring Kafka 集成
  • 深层语义知识图谱:提升NLP文本预处理效果的关键技术
  • 《基于改进 MobileNetV2 的轻量化茶叶病虫害检测方法》论文解析
  • Redis--day8--黑马点评--分布式锁(一)
  • HTML应用指南:利用POST请求获取全国华为旗舰店门店位置信息
  • Python函数:装饰器
  • c++最长上升子序列长度
  • 雷卯针对香橙派Orange Pi 5 Plus开发板防雷防静电方案