66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// License: AGPLv3 or later. https://www.gnu.org/licenses/licenses.html
 | 
						|
 | 
						|
#include <fstream>
 | 
						|
#include <iostream>
 | 
						|
#include <random>
 | 
						|
# include "general_functions.h"
 | 
						|
 | 
						|
using namespace std;
 | 
						|
 | 
						|
vector<string> get_textfile_lines(std::string filename)
 | 
						|
{
 | 
						|
    ifstream file(filename);
 | 
						|
    vector<string> 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<std::mt19937::result_type> 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;
 | 
						|
}
 |