我必须编写一个程序来遍历给定的文件夹并使用 regex_search 来查找某个字符串的每个实例。我现在已经让 regex_search 自己工作了,我只是想弄清楚如何浏览每个文件。我想尝试使用目录,但不确定我会把它放在哪里。我是否必须将搜索文件放入我的 main 方法中,还是必须在 main 方法之外创建一个单独的函数来遍历每个文件并在 main 方法中调用它?
这就是我现在所拥有的。你们可以就如何解决这个问题提供任何提示,我们将不胜感激!
现在它的功能是读取输入文本文件并输出一个 txt 文件,该文件显示所有实例和每个外观的行号。我不需要查看它们所在的行、使用特定文件或为该程序制作输出文件,我发现的内容将简单地打印到控制台。我已经留下了我现在拥有的东西,因为我不确定我是否会以类似的方式检查每个单独的文件,只是使用不同的 cariable 名称。
#include <iostream>
#include <regex>
#include <string>
#include <fstream>
#include <vector>
#include <regex>
#include <iomanip>
using namespace std;
int main (int argc, char* argv[]){
// validate the command line info
if( argc < 2 ) {
cout << "Error: Incorrect number of command line arguments\n"
"Usage: grep\n";
return EXIT_FAILURE;
}
//Declare the arguments of the array
string resultSwitch = argv[1];
string stringToGrep = argv[2];
string folderName = argv [3];
regex reg(stringToGrep);
// Validate that the file is there and open it
ifstream infile( inputFileName );
if( !infile ) {
cout << "Error: failed to open <" << inputFileName << ">\n"
"Check filename, path, or it doesn't exist.\n";
return EXIT_FAILURE;
}
while(getline(infile,currentLine))
{
lines.push_back( currentLine );
currentLineNum++;
if( regex_search( currentLine, reg ) )
outFile << "Line " << currentLineNum << ": " << currentLine << endl;
}
infile.close();
}