Итак, я работаю над программой, подобной grep. Это будет искать данный файл, а затем возвращать все строки с экземплярами слова, которое вы хотите, вместе с номером строки, где он был. Я пришел с этим:Программа, создающая пустой выходной файл
#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 query = argv[1];
string inputFileName = argv[2];
string outFileName = argv [3];
regex reg(query);
// 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;
}
ofstream outFile (outFileName);
outFile.open(outFileName + ".txt");
// if(!outFile){
// cout << "Error: failed to create output file at " << outFileName << ".txt\n";
// return EXIT_FAILURE;
// }
//Create a vector of string to hold each line
vector<string> lines;
//Create a while loop that puts each line into the vector lines
string currentLine = "";
int currentLineNum = 0;
while(getline(infile,currentLine))
{
lines.push_back(currentLine);
currentLineNum++;
if(regex_match(query, reg))
outFile << "Line " << currentLineNum << ": " << currentLine;
}
outFile.close();
infile.close();
}
Когда я бегу он это делает файл, но файлы в конечном итоге пустым, я уверен, что я искал в файле, поэтому я полагаю, что я сделал логическая ошибка где-то здесь. У меня нет опыта создания выходных файлов, но то, что я написал, похоже, соответствует синтаксису того, что я читал. Любой совет, который вы, ребята, можете дать, будет очень полезен.
Пробовал ли вы использовать отладчик? –
Просто общий отладчик Visual Studio, никаких ошибок не обнаружено. – Sh0gun
Ошибок не было? Что это значит? Ясно, что есть ошибка, или ваша программа будет работать, правильно? –