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

题目概述

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

关键点

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

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

cpp 复制代码
#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

cpp 复制代码
#include <cstdio>

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

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


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

cpp 复制代码
#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()(流对象原生方法)

cpp 复制代码
#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++ 中新建控制台项目编译运行即可。
  • 命令行(可选):
bash 复制代码
g++ -std=c++11 -O2 -pipe -o main main.cpp
./main
相关推荐
C++ 老炮儿的技术栈10 分钟前
我们在设计tcp协议时,要传一个字符串过去,报文:头十长度十内容,是否要把‘\0‘也填入,长度是否包含‘\0‘
开发语言·数据结构·c++·mfc·c
传奇开心果编程41 分钟前
【Rust入门练中学】第2课:变量、可变性与常量
开发语言·学习·rust
zr想努力1 小时前
从0开始配置Perforce4环境
开发语言
Navigator_Z2 小时前
LeetCode //C - 1252. Cells with Odd Values in a Matrix
c语言·算法·leetcode
幸运小圣2 小时前
PointerEvent 常用属性与事件整理【JavaScript】
开发语言·javascript·ecmascript
长谷深风1113 小时前
评测AI Agent:三种裁判各司其职
java·大数据·开发语言·人工智能·ai agent
边境悍匪3 小时前
蜗牛学苑 Java 智能体学习 Day42|项目周开发技术汇总 1 思维导图复盘
java·开发语言·spring boot·学习·spring
语戚3 小时前
力扣 1621. 大小为K的不重叠线段的数目:动态规划(Java 实现)
java·算法·leetcode·动态规划·力扣·dp
君顾13 小时前
本地托管机构管理源码实战:需求拆解、数据建模与多端部署
java·开发语言·托管
青山木3 小时前
Hot 100 --- 最长有效括号
java·数据结构·算法·leetcode·动态规划