例程:
icp.msVecSrcPoints.clear(); //清空点云存储容器
std::ifstream filePCloud(filePCloudDlg.GetFileName());
while(!filePCloud.eof())
{
filePCloud>>PointCloud;
if (filePCloud.eof())//判断是否到结尾,此判断一定要放到push_back前边
{
break;
}
icp.msVecSrcPoints.push_back(PointCloud);
}
filePCloud.close();
}
一定要按照上述顺序进行判断结尾,若判断到结尾立马结束循环,不能再进行数据输入,否则文件最后一个字符会被输入两次,导致后续操作出错。