B2004 对齐输出

题目描述

读入三个整数,按每个整数占 88 个字符的宽度,右对齐输出它们,按照格式要求依次输出三个整数,之间以一个空格分开。

输入格式

只有一行,包含三个整数 a,b,ca,b,c。整数之间以一个空格分开。

输出格式

只有一行,按照格式要求依次输出三个整数,之间以一个空格分开。

输入输出样例

输入

123456789 0 -1

输出 

123456789        0       -1

说明/提示

对于 100 \%100% 的数据,-2^{31} \le a, b, c < 2^{31}−231≤a,b,c<231。

代码如下:

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c;
    cin>>a>>b>>c;
    cout<<setw(8)<<a<<" "<<setw(8)<<b<<" "<<setw(8)<<c;
    return 0;
}

这个程序首先包含了标准库bits/stdc++.h,然后定义了一个main函数。在main函数中,程序声明了三个整数变量abc,然后通过输入流cin依次读取三个整数的值。

接下来,程序使用setw函数来设置输出的宽度,使每个整数占据8个字符的宽度,并且在输出时使用空格进行对齐。最后,使用cout输出三个整数abc

整体来说,这个程序的作用是读取三个整数,并以每个整数占据8个字符宽度的形式输出它们。

C++中实现对齐输出主要依赖于标准库中的格式化功能,具体可以通过 `<iostream>` 和 `<iomanip>` 头文件中的工具来控制输出的宽度、填充字符以及对齐方式。 ### 使用 `printf` 风格的格式化输出 可以使用 `<cstdio>` 中的 `printf` 函数,通过格式字符串指定字段宽度和对齐方式。例如,`%6d` 表示输出一个占据6个字符宽度的整数,默认为右对齐;而 `%-6d` 则表示左对齐[^1]: ```cpp #include <cstdio> int main() { int a = 123, b = 456; printf("%6d %-6d", a, b); // 右对齐与左对齐输出 return 0; } ``` ### 使用 C++ 流式格式化输出 对于更现代的方法,推荐使用 `<iomanip>` 提供的 `std::setw` 设置字段宽度,并结合 `std::left` 或 `std::right` 控制对齐方向。这种方式更加灵活且类型安全: ```cpp #include <iostream> #include <iomanip> int main() { int a = 123, b = 456; std::cout << std::right << std::setw(6) << a << " " << std::left << std::setw(6) << b << std::endl; // 混合对齐方式输出 return 0; } ``` 此外,在处理浮点数等复杂数据时,还可以设置精度及固定小数点格式以确保输出的一致性和可读性。例如,使用 `std::fixed` 和 `std::setprecision` 来控制浮点数值的显示精度[^2]: ```cpp #include <fstream> #include <iomanip> // 假设 imu_msg 已经被正确初始化 void logImuData(std::ofstream &foutC, ImuMessage *imu_msg) { foutC << std::fixed << std::setprecision(6) << imu_msg->header.stamp.toSec() << " " << std::setw(10) << std::setfill(' ') << imu_msg->linear_acceleration.x << " " << std::setw(10) << std::setfill(' ') << imu_msg->linear_acceleration.y << " " << std::setw(10) << std::setfill(' ') << imu_msg->linear_acceleration.z << " " << std::setw(10) << std::setfill(' ') << imu_msg->angular_velocity.x << " " << std::setw(10) << std::setfill(' ') << imu_msg->angular_velocity.y << " " << std::setw(10) << std::setfill(' ') << imu_msg->angular_velocity.z << std::endl; } ``` 上述方法不仅限于整型或浮点型数据,也可以应用于其他基本类型如字符和字符串,只要适当地调整格式说明符或者使用相应的流操作符即可。这些技术共同构成了C++中实现对齐输出的基础手段,适用于需要生成结构化文本输出的各种场景,比如日志记录、报告生成等。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值