Итак, я пытаюсь написать прогам, который выполняет ту же задачу, что и grep. В конце я хочу программу, которая принимает четыре аргумента, вторая - это то, что нужно искать, третье - входной файл, а четвертый - выходной файл. Я думаю, что у меня есть хорошее представление о том, как это сделать, но, как обычно, теория становится легкой, а фактическое программирование меня пугает. В основном, где я сейчас, у меня есть файл, и я пытаюсь его найти и получить все строки, содержащие то, что я ищу, а также строку этого номера.Перезапись grep в C++
Я хочу использовать вектор для достижения этой задачи. Я не совсем уверен, как это сделать. Было бы проще пройти и добавить каждую строку в вектор по отдельности, а затем пройти и выделить те, которые имеют нужную строку, и использовать их местоположение в качестве номера строки? Я хотел бы думать, что есть способ только добавить эти строки к вектору, который содержит нужную строку, но тогда я не уверен, как получить номер строки. Я начал пару раз, а затем стер, что я, когда понял, что все это неправильно.
Это где я в настоящее время:
#include <iostream>
#include <regex>
#include <string>
#include <fstream>
#include <vector>
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 query = argv[1];
string inputFileName = argv[2];
string outputFileName = argv [3];
// 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;
}
else{
vector<string> queries;
}
}
}
Не могли бы вы найти что-то более легкое, например, решение гипотезы Пуанкаре или гипотезы Римана? Вы действительно _seen_ код для обработки регулярных выражений? :-) – paxdiablo
Re: * # include * Большая часть сложности grep приведена выше. Оригинальный автор 'grep' тоже написал эту часть. Что вы пишете, это всего лишь тривиальная оболочка API-интерфейса регулярных выражений. Стараться. :) –
Kaz
Каждый должен что-то начать. :) Спасибо за помощь, ребята. – Sh0gun