【问题标题】:regex undeclared (Dev C++)未声明的正则表达式 (Dev C++)
【发布时间】:2013-03-25 18:41:25
【问题描述】:
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <regex.h>

using namespace std;

string input;

int main()
{   
    //Input .ply file
    ifstream inputFile ("input.ply");


    //input file is read
    if (inputFile.is_open())
    {
        int i = 1;  //Line iterator
        int vertices = 0;
        int faces = 0;

        vector<float> anatomy;
        vector<float> normals;
        vector<int> triangles;

        string a,line;
        getline(cin,line);

        while (inputFile.good())
        {
            //Take number from line 4, set as variable "vertices"
            if (i == 4)
            {
                regex pattern("[^0-9]+");
                getline (inputFile,line);              
                vertices = show_match(line, pattern);
            }

            //Take number from line 11, set as variable "triangles"
            if (i == 11)
            {
                regex pattern("[^0-9]+");
                getline (inputFile,line);              
                faces = show_match(line, pattern);
            }

            if (i == 13)
            {
                i++;
                break;
            }

            i++;

        }

        waitKey(0);
}

else
{
    cout << "Cannot read mesh, please try again." << endl;
}

return 0;

}

只是试图从字符串中读取并提取整数,所以我添加了正则表达式头和其他文件以使用正则表达式。我正在使用 Dev-C++ 并将正则表达式的文件提取到它们各自的 libbininclude 文件夹中的“C :\Dev-Cpp",但是当我尝试编译我的程序时仍然收到以下错误:

'regex'未声明(首先使用这个函数)

【问题讨论】:

  • regex.h 是从哪里来的?
  • 如果你使用的是 GCC,它不支持 C++11 的正则表达式。
  • 很可能是提供 C 正则表达式 API 的 POSIX 标头。与 C++11 无关,但如果按照 C API 使用,则可以改为使用。
  • Dev-C++ 与 C++11 不兼容吗?
  • Dev-C++ 是 IDE,而不是编译器。与 C++11 兼容或不兼容的是编译器,而这种兼容性只是程度问题。我不知道你的编译器是什么,但它会编译 C 和 C++,并且会提供 C 头文件和库以及 C++ 的。我相信您将 C 正则表达式 API 标头误认为 C++ 正则表达式类标头。

标签: c++ regex string integer dev-c++


【解决方案1】:

如果您的语句 #include &lt;regex.h&gt; 未达到,您将从编译器收到此错误消息,例如,如果您使用条件包含。

确保实际到达#include &lt;regex.h&gt;。当我使用 的条件包含然后尝试使用 的代码时意外排除了包含时,我也收到了此错误消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多