// License: AGPLv3 or later. https://www.gnu.org/licenses/licenses.html #include #include #include # include "general_functions.h" using namespace std; vector get_textfile_lines(std::string filename) { ifstream file(filename); vector file_lines; if (! file.good()) { cerr << "Failed to open/read file: " << filename\ << ". Non-exhaustive list of possible reasons:\n"\ << "1. File does not exist.\n"\ << "2. Unable to read file due to:\n"\ << "2.1 Don't have read access to file\n"\ << "2.2 File is opened elsewhere and some program have a "\ << "lock on file.\n"; exit(2); } cout << "Reading file: " << filename << endl; while (file.good()) { string line; getline(file, line); file_lines.push_back(line); } file.close(); return file_lines; } int random_int(int lower_bound, int upper_bound) { static std::random_device seed; static std::mt19937 random_number_generator(seed()); std::uniform_int_distribution range( lower_bound, upper_bound); return range(random_number_generator); } bool is_string_some_positive_number(std::string a_string) { for (int i=0; i < a_string.size(); i++) { string character(1, a_string[i]); try { stoi(character); } catch(...) { return false; } } return true; }