为了分析点云数据然后想查看一下原始的pcd结果使用cat查看时出现乱码因为保存形式二进制形式所以这里就是简单的一个pcd另存为的操作#include iostream #include cstring #include pcl/io/pcd_io.h #include pcl/point_cloud.h #include pcl/point_types.h bool LoadPCD(std::string filename, pcl::PointCloudpcl::PointXYZ::Ptr cloud) { if (pcl::io::loadPCDFilepcl::PointXYZ(filename, *cloud) -1) { std::cout cant read file filename std::endl; return (-1); } } int main(int argc, char **argv) { std::cout Hello, world! std::endl; pcl::PointCloudpcl::PointXYZ::Ptr cloud_source(new pcl::PointCloudpcl::PointXYZ); std::string filename /home/frr/Documents/code/3d_pointcloud_plane_fitting/test_planefitting.pcd; // std::string filename ../table_scene_lms400.pcd; LoadPCD(filename, cloud_source); std::cout PointCloud_source has: cloud_source-points.size () data points. std::endl; pcl::PCDWriter writer; std::stringstream ss; ss /home/frr/Documents/code/pcl_learning/ascii_change/build/ascii_change.pcd; writer.writepcl::PointXYZ (ss.str (), *cloud_source, false); //* return 0; }再次读取使用cat查看时就是正常的数据显示了PCL用的还不是很熟还在慢慢摸索很多功能中如果有理解不到位的地方还请小伙伴们指正