当前位置: 首页 > 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.lryc.cn/news/624335.html

相关文章:

  • 【Java基础】反射,注解,异常,Java8新特性,object类-详细介绍
  • 鸿蒙中应用框架和应用模型
  • 【P18 3-10】OpenCV Python—— 鼠标控制,鼠标回调函数(鼠标移动、按下、。。。),鼠标绘制基本图形(直线、圆、矩形)
  • CVPR 2025|英伟达联合牛津大学提出面向3D医学成像的统一分割基础模型
  • rust 从入门到精通之变量和常量
  • 视觉语言导航(14)——VLN ON ROBOTIC 4.4
  • 多线程初阶-线程安全 (面试和工作的重点!!!)
  • Gartner发布2025年AI与网络安全成熟度曲线:用AI增强网络安全计划的27项技术与创新
  • 猫头虎AI分享|一款智能量化交易系统:QuantCell,从数据收集到策略执行全流程自动化
  • #Datawhale 组队学习#8月-工作流自动化n8n入门-1
  • 牛子图论进阶
  • ChatGPT-5 对教育行业的影响与案例研究
  • 【领码课堂】AI写码不再“盲跑”,方案先行,自动化高效落地
  • 【完整源码+数据集+部署教程】无人机目标检测系统源码和数据集:改进yolo11-efficientViT
  • MQTT(轻量级消息中间件)基本使用指南
  • lesson41:MySQL数据库进阶实战:视图、函数与存储引擎全解析
  • 大数据计算引擎(一)——Spark
  • 国产化Excel处理组件Spire.XLS教程:使用 C# 从数据库导出数据到 Excel(含 SQL 示例)
  • 利用DeepSeek辅助WPS电子表格ET格式分析
  • iOS 应用上架全流程实践,从开发内测到正式发布的多工具组合方案
  • C++ 是技术面试中的高频考察测点(基础知识)
  • 【数据库】Navicat 导入 Excel 数据乱码问题的解决方法
  • Laravel中如何使用php-casbin
  • Effective C++ 条款48:认识模板元编程
  • ARM 架构简明教程学习笔记
  • 23.CNN系列网络思考
  • 科伦博泰:商业化引爆点已至,冲向Biopharma的“最后一公里”
  • 基于C语言实现的HRV分析方法 —— 与Kubios和MATLAB对比
  • C++11列表初始化 {}
  • 【数据可视化-92】使用 Pyecharts 绘制乡镇街道级地图:以安徽省黄山市休宁县为例(我的老家)