特定のフォルダーを通過し、regex_search を使用して特定の文字列のすべてのインスタンスを検索するプログラムを作成する必要があります。regex_search が独自に動作するようになりました。各ファイルを処理する方法を理解しようとしています。ディレクトリを使用して試してみたいのですが、どこに置くかわかりません。ファイルの検索をメイン メソッドに入れる必要がありますか、それとも、各ファイルを調べてメイン メソッド内で呼び出すために、メイン メソッドの外に別の関数を作成する必要がありますか?
これは私が今持っているものです。これにアプローチする方法について皆さんが与えることができるヒントは大歓迎です!
現時点での機能は、入力テキスト ファイルを読み取り、すべてのインスタンスと各外観の行番号を示す txt ファイルを出力することです。それらがどの行にあるかを確認したり、特定のファイルを使用したり、このプログラムの出力ファイルを作成したりする必要はありません。見つかったものは単にコンソールに出力されます。個々のファイルを同様の方法で別の名前でチェックするかどうかわからないため、現在持っているものを残しました。
#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();
}