相较于Qt Qtextstream的性能提升十倍!!!!!!!!
本文点云格式特殊 有需要自行修改即可
QFile dataFile(fileName);
bool ret = dataFile.open(QIODevice::ReadOnly|QIODevice::Text);
if(ret)
{
uchar* fpr = dataFile.map(0, dataFile.size());
int cnt = 0;
int subcnt = 0;
char *substr;
char *s = strdup((char*)fpr);
//切换到element vertex 行
substr = mystrsep(&s, "\n");
substr = mystrsep(&s, "\n");
substr = mystrsep(&s, "\n");
substr = mystrsep(&s, "\n");
//分割出数字
char *lineSubStr;
int total_num = 0;
while (subcnt < 3)
{
lineSubStr = mystrsep(&substr, " ");
if(subcnt ==2)
total_num = atof(lineSubStr);
subcnt++;
}
//分配点内存
std::vector<std::vector<float>>temp_points(total_num, {0,0,0,0,0,0,0,0,0});
for(int i=0;i<11;i++)
substr = mystrsep(&s, "\n");
//读取内容
for (int i = 0; i < total_num; i++)
{
substr = mystrsep(&s, "\n");
for (int j = 0; j < 9; j++)
{
lineSubStr = mystrsep(&substr, " ");
temp_points[i][j] = atof(lineSubStr);
}
}
参考https://blog.csdn.net/aifei1924/article/details/102263896?ops_request_misc=&request_id=&biz_id=102&utm_term=qt%20%E5%A4%9A%E7%BA%BF%E7%A8%8B%E8%AF%BB%E5%8F%96%E7%82%B9%E4%BA%91&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-102263896.142v5pc_search_quality_down,157v4control&spm=1018.2226.3001.4187