0

我有一个 .txt 文件,其中包含点的真实坐标。场景是相机面对墙壁;他们之间我有一个盒子。我只想在 .txt 中获取指向框的点,所以我想从坐标中读取第三个分量,这意味着深度值以及它是否大于某个距离以补充所有线条。

文件.txt

0.005545 0.06564 1.6354

0.235443 0.35464 2.6575

if(value>2.5) { 完全从 .txt 中删除行 }

所有坐标都用空格和带介绍的线条分隔。

谢谢

4

2 回答 2

1

我认为这会起作用:

#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;
}
于 2013-07-24T12:46:33.997 回答
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();

提示:写一个新文件,稍后重命名。

于 2013-07-24T12:16:33.447 回答