使用C ++仅从文本文件中读取同一行中特定搜索的字符串之后的字符串/字符/数据

考沙尔·乔希(Kaushal Joshi)

我有一个文本文件,内容是:

# Details for object 1 ("PASperson")
# Center point -- not available in other PASCAL databases -- refers
# to person head center
Original label for object 1 "PASperson" : "UprightPerson"
Center point on object 1 "PASperson" (X, Y) : (281, 169)
Bounding box for object 1 "PASperson" (Xmin, Ymin) - (Xmax, Ymax) : (250, 151) - (299, 294)

# Details for object 2 ("PASperson")
# Center point -- not available in other PASCAL databases -- refers
# to person head center
Original label for object 2 "PASperson" : "UprightPerson"
Center point on object 2 "PASperson" (X, Y) : (247, 373)
Bounding box for object 2 "PASperson" (Xmin, Ymin) - (Xmax, Ymax) : (215, 354) - (274, 466)

现在我想获得Xmin Ymin Xmax Ymax值,并在我的c ++程序中使用它来将这些坐标与我新生成的坐标进行比较。那么如何做到这一点。我可以从文本文件中获取字符串“ Xmax,Ymax”,但是在此之后我不知道如何读取以获取坐标。我的代码是要搜索字符串是:

int main()
    {
        std::string data;
        ifstream read_file("crop001501.txt",ios::in);
        char *search="Xmax, Ymax";
        int offset;
    while(std::getline(read_file ,data))
{
    //read_file>>data;
    //cout<<data<<endl;
    if ((offset = data.find(search, 0)) != string::npos) {
    cout << "found '" << search << endl;}
}
cin.get();
return 0;
}

该程序将在每行中搜索字符串Xmax,Ymax,并在找到后立即进行打印。但我想要此字符串的指针,以便我可以增加指针值并读取Xmin的值,然后跳过,并读取Ymin的值,然后跳过)-并读取Xmax的值,对于Ymax相同。获得价值后,转到下一行并执行相同的操作。如果有人知道任何其他读取这些值的方法,请告诉我,我不需要X,Y的值。如果有任何错误,对不起,我是新来的。提前致谢

911
#include <iostream>
#include <string>
#include <regex>
#include <cassert>
#include <chrono>
#include <sstream>

using namespace std;

int main(void){

    string line("Bounding box for object 1 \"PASperson\" (Xmin, Ymin) - (Xmax, Ymax) : (250, 151) - (299, 294)");

    // METHOD 1 - using regular expressions
    {
        regex e("object ([[:digit:]]+) \"PASperson\" \\(Xmin, Ymin\\) - \\(Xmax, Ymax\\) : \\(([[:d:]]+), ([[:d:]]+)\\) - \\(([[:d:]]+), ([[:d:]]+)\\)");

        smatch m;

        bool found = regex_search(line, m, e);

        if (found == true){
            assert(m.size() == 6);

            int object_id, xmin, xmax, ymin, ymax;

            object_id = stoi(m[1]);
            xmin = stoi(m[2]);
            ymin = stoi(m[3]);

            xmax = stoi(m[4]);
            ymax = stoi(m[5]);

            cout << "Object ID = " << object_id << endl;
            cout << "Xmin = " << xmin << endl;
            cout << "Ymin = " << ymin << endl;
            cout << "Xmax = " << xmax << endl;
            cout << "Ymax = " << ymax << endl;
        }
    }

    // METHOD 2 : using stringstream
    {
        istringstream ss(line);
        int object_id;
        string xmin_s, xmax_s, ymin_s, ymax_s;
        string other;
        ss >> other; ss >> other; ss >> other; ss >> other; // ignore 4 words
        ss >> object_id;
        ss >> other; ss >> other; ss >> other; ss >> other; ss >> other; ss >> other; ss >> other;  // ignore 7 words
        ss >> xmin_s; ss >> ymin_s; 
        ss >> other; // ignore -
        ss >> xmax_s; ss >> ymax_s;

        // get rid of leading/trailing symbols (,)
        xmin_s.erase(xmin_s.begin()); xmin_s.erase(xmin_s.end() - 1);
        xmax_s.erase(xmax_s.begin()); xmax_s.erase(xmax_s.end() - 1);
        ymin_s.erase(ymin_s.end() - 1);
        ymax_s.erase(ymax_s.end() - 1);

        int xmin, xmax, ymin, ymax;

        // convert strings to integers
        xmin = stoi(xmin_s);
        ymin = stoi(ymin_s);
        xmax = stoi(xmax_s);
        ymax = stoi(ymax_s);

        cout << "Object ID = " << object_id << endl;
        cout << "Xmin = " << xmin << endl;
        cout << "Ymin = " << ymin << endl;
        cout << "Xmax = " << xmax << endl;
        cout << "Ymax = " << ymax << endl;        
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Unix从文件的每一行中获取特定字符串的搜索计数?

来自分类Dev

如何使用grep仅在文件的第一行中搜索特定字符串?

来自分类Dev

使用Java在文本文件中搜索字符串

来自分类Dev

读取文本文件中的所有行并将其保存到字符串中(不使用List)

来自分类Dev

C-从文本文件中读取字符串并按大小排列

来自分类Dev

从文本文件将字符串读取到向量数组中的Char错误C ++

来自分类Dev

C、读取文本文件时字符串中的垃圾/垃圾值

来自分类Dev

使用VBA从URL中的文本文件读取字符串

来自分类Dev

如何从文本文件中的字符串中提取特定单词?C ++

来自分类Dev

如果文本文件包含字符串,则使用PowerShell从文本文件中删除行

来自分类Dev

使用PowerShell计算文本文件中的特定字符串

来自分类Dev

使用同一行中的文本替换多行字符串中的文本

来自分类Dev

用C#在文本文件中写入字符串数据的字节格式的问题

来自分类Dev

如何从.INI文件中读取字符串,然后从文本文件中读取该字符串,并使用Python打印整行?

来自分类Dev

使用 matlab 搜索特定单词的文本文件并添加字符串?

来自分类Dev

如何使用std :: getline()将文本文件读取为C ++中的字符串数组?

来自分类Dev

如何使用文本文件中一行的一组字符串执行查找命令

来自分类Dev

使用PowerShell Select-String在文本文件的同一行上查找多个字符串

来自分类Dev

使用批处理更改文本文件中一行内的字符串

来自分类Dev

如何使用 C# 在文本文件中绘制字符串?

来自分类Dev

使用bash从文本文件中删除保护字符之间的字符串

来自分类Dev

C ++将字符串,整数,浮点数从文本文件中读取到数组/字符串中

来自分类Dev

扫描文本文件中的字符串,如果找到,则使用该字符串创建新的txt文件

来自分类Dev

使用StringBuilder和BufferedReader,如何在文本文件中的每个单词之后添加逗号并生成字符串?

来自分类Dev

如何使用Windows CMD搜索和替换多个文本文件(目录中)中的字符串?

来自分类Dev

从txt文件中读取字符串,然后在c ++中的第一行停止

来自分类Dev

C++ 从文本文件中读取字符串并逐字保存到链表中

来自分类Dev

如何使用Racket语言在纯文本文件的特定行写入字符串?

来自分类Dev

如何在 Oracle 中添加字符串并使用该字符串名称创建文本文件

Related 相关文章

  1. 1

    如何使用Unix从文件的每一行中获取特定字符串的搜索计数?

  2. 2

    如何使用grep仅在文件的第一行中搜索特定字符串?

  3. 3

    使用Java在文本文件中搜索字符串

  4. 4

    读取文本文件中的所有行并将其保存到字符串中(不使用List)

  5. 5

    C-从文本文件中读取字符串并按大小排列

  6. 6

    从文本文件将字符串读取到向量数组中的Char错误C ++

  7. 7

    C、读取文本文件时字符串中的垃圾/垃圾值

  8. 8

    使用VBA从URL中的文本文件读取字符串

  9. 9

    如何从文本文件中的字符串中提取特定单词?C ++

  10. 10

    如果文本文件包含字符串,则使用PowerShell从文本文件中删除行

  11. 11

    使用PowerShell计算文本文件中的特定字符串

  12. 12

    使用同一行中的文本替换多行字符串中的文本

  13. 13

    用C#在文本文件中写入字符串数据的字节格式的问题

  14. 14

    如何从.INI文件中读取字符串,然后从文本文件中读取该字符串,并使用Python打印整行?

  15. 15

    使用 matlab 搜索特定单词的文本文件并添加字符串?

  16. 16

    如何使用std :: getline()将文本文件读取为C ++中的字符串数组?

  17. 17

    如何使用文本文件中一行的一组字符串执行查找命令

  18. 18

    使用PowerShell Select-String在文本文件的同一行上查找多个字符串

  19. 19

    使用批处理更改文本文件中一行内的字符串

  20. 20

    如何使用 C# 在文本文件中绘制字符串?

  21. 21

    使用bash从文本文件中删除保护字符之间的字符串

  22. 22

    C ++将字符串,整数,浮点数从文本文件中读取到数组/字符串中

  23. 23

    扫描文本文件中的字符串,如果找到,则使用该字符串创建新的txt文件

  24. 24

    使用StringBuilder和BufferedReader,如何在文本文件中的每个单词之后添加逗号并生成字符串?

  25. 25

    如何使用Windows CMD搜索和替换多个文本文件(目录中)中的字符串?

  26. 26

    从txt文件中读取字符串,然后在c ++中的第一行停止

  27. 27

    C++ 从文本文件中读取字符串并逐字保存到链表中

  28. 28

    如何使用Racket语言在纯文本文件的特定行写入字符串?

  29. 29

    如何在 Oracle 中添加字符串并使用该字符串名称创建文本文件

热门标签

归档