Open alexey-malov opened 6 years ago
bool PrintLineNumbersWhereSearchStringWasFound(std::ifstream &inputFile, std::string searchString)
тогда main превратится в:
/*проверка числа аргументов*/
if (PrintLineNumbersContainingText(argv[1], argv[2])
{
return 0;
}
else
{
// text not found
return 1;
}
bool IsSearchStringEmpty(std::string searchString)
{
if (searchString.empty())
{
std::cout << "Search string must be not empty. \n";
return false;
}
return true;
}
bool CheckFileToOpenForReading(const std::string &inputFile)
{
std::ifstream file ;
file.open(inputFile);
if (!file.is_open())
{
std::cout << "Failed to open " << inputFile << " for reading \n";
return false;
}
return true;
}
enum result
{
text_was_found,
text_not_found,
err
};
result PrintLineNumbersContainingText(const std::string &inputFile, std::string searchString)
[ ] объекты следует передавать по константной ссылке, если функция не модифицирует их состояние. Примитивные объекты передавать по константной ссылке выгоды нет, лучше по значению
[x] inputFile -> inputFileName либо inputFilePath
else if (programResult == text_not_found)