1003:对齐输出cout解

本文介绍了一种使用C++编程语言实现的解决方案,通过scanf和printf函数或使用C++的iostream库,来读取并格式化输出三个整数,确保每个整数占据8个字符的宽度,并且右对齐。

【题目描述】

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

【输入】

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

【输出】

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

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

emmm………………将就着吧。。。

观察一下printf的格式化字符串和输出,然后看看下面代码的问题:

#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<<endl;
	return 0;
}

 

【样例输入】

1 123456789 -1

 

 

正确代码为:

#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<<endl;
	return 0;
}

 

pcl点云库进行ICP配准过程中,出现0x00007FFE55669D22 (pcl_registration.dll) (new_test.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突。所用例程为标准教学例程,其他电脑运行没有问题,程序如下所示。 #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/registration/icp.h> int main(int argc, char** argv) { // 定义输入和输出点云 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_in(new pcl::PointCloud<pcl::PointXYZ>); pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_out(new pcl::PointCloud<pcl::PointXYZ>); // 随机填充无序点云 cloud_in->width = 5; cloud_in->height = 1; cloud_in->is_dense = false; cloud_in->points.resize(cloud_in->width * cloud_in->height); for (size_t i = 0; i < cloud_in->points.size(); ++i) { cloud_in->points[i].x = 1024 * rand() / (RAND_MAX + 1.0f); cloud_in->points[i].y = 1024 * rand() / (RAND_MAX + 1.0f); cloud_in->points[i].z = 1024 * rand() / (RAND_MAX + 1.0f); } std::cout << "Saved " << cloud_in->points.size() << " data points to input:" << std::endl; for (size_t i = 0; i < cloud_in->points.size(); ++i) std::cout << " " << cloud_in->points[i].x << " " << cloud_in->points[i].y << " " << cloud_in->points[i].z << std::endl; *cloud_out = *cloud_in; std::cout << "size:" << cloud_out->points.size() << std::endl; // 在点云上执行简单的刚性变换,将cloud_out中的x平移0.7f米,然后再次输出数据值。 for (size_t i = 0; i < cloud_in->points.size(); ++i) cloud_out->points[i].x = cloud_in->points[i].x + 0.7f; // 打印这些点 std::cout << "Transformed " << cloud_in->points.size() << " data points:" << std::endl; for (size_t i = 0; i < cloud_out->points.size(); ++i) std::cout << " " << cloud_out->points[i].x << " " << cloud_out->points[i].y << " " << cloud_out->points[i].z << std::endl; // 创建IterativeClosestPoint的实例 // setInputSource将cloud_in作为输入点云 // setInputTarget将平移后的cloud_out作为目标点云 pcl::IterativeClosestPoint<pcl::PointXYZ, pcl::PointXYZ> icp; icp.setInputSource(cloud_in); icp.setInputTarget(cloud_out); // 创建一个 pcl::PointCloud<pcl::PointXYZ>实例 Final 对象,存储配准变换后的源点云, // 应用 ICP 算法后, IterativeClosestPoint 能够保存结果点云集,如果这两个点云匹配正确的话 // (即仅对其中一个应用某种刚体变换,就可以得到两个在同一坐标系下相同的点云),那么 icp. hasConverged()= 1 (true), // 然后会输出最终变换矩阵的匹配分数和变换矩阵等信息。 pcl::PointCloud<pcl::PointXYZ> Final; icp.align(Final); std::cout << "has converged:" << icp.hasConverged() << " score: " << icp.getFitnessScore() << std::endl; const pcl::Registration<pcl::PointXYZ, pcl::PointXYZ, float>::Matrix4& matrix = icp.getFinalTransformation(); std::cout << matrix << std::endl; return (0); }
06-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清晨曦月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值