我有一个 .txt 文件,其中包含点的真实坐标。场景是相机面对墙壁;他们之间我有一个盒子。我只想在 .txt 中获取指向框的点,所以我想从坐标中读取第三个分量,这意味着深度值以及它是否大于某个距离以补充所有线条。
文件.txt
0.005545 0.06564 1.6354
0.235443 0.35464 2.6575
if(value>2.5) { 完全从 .txt 中删除行 }
所有坐标都用空格和带介绍的线条分隔。
谢谢
我有一个 .txt 文件,其中包含点的真实坐标。场景是相机面对墙壁;他们之间我有一个盒子。我只想在 .txt 中获取指向框的点,所以我想从坐标中读取第三个分量,这意味着深度值以及它是否大于某个距离以补充所有线条。
文件.txt
0.005545 0.06564 1.6354
0.235443 0.35464 2.6575
if(value>2.5) { 完全从 .txt 中删除行 }
所有坐标都用空格和带介绍的线条分隔。
谢谢
我认为这会起作用:
#include <fstream>
#include <vector>
#include <iterator>
#include <algorithm>
#define THRESH 2.5f
using namespace std;
int main()
{
vector<float> DataArray;
ifstream myfile("test.txt");
copy(istream_iterator<float>(myfile),
istream_iterator<float>(),
back_inserter(DataArray));
myfile.close();
ofstream newfile("test.txt");
for(int i = 2; i < DataArray.size(); i += 3)
{
if(DataArray[i] < THRESH)
{
for (int j = i-2; j <= i; ++j)
newfile << DataArray[j] << " ";
newfile << endl;
}
}
myfile.close();
return 0;
}
使用std::ifstream
读取文件。
std::string line;
std::ifstream input_file;
input_file.open("input_file.txt");
// Read the file one line at a time
while (std::getline(input_file, line))
{
// Do your thing
}
input_file.close();
提示:写一个新文件,稍后重命名。