init
						commit
						cf61ecf2ab
					
				| @ -0,0 +1,2 @@ | |||||||
|  | .vscode | ||||||
|  | *.txt | ||||||
| @ -0,0 +1,2 @@ | |||||||
|  | Attempts at the Advent of Code daily challenges in C++/Go/JS. | ||||||
|  | Boilerplate code for reading in input files in boilerplate/ for each language. | ||||||
| @ -0,0 +1,46 @@ | |||||||
|  | #include "boilerplate.hh" | ||||||
|  | 
 | ||||||
|  | // newline separated split
 | ||||||
|  | std::vector<std::string> readFile(std::string file){ | ||||||
|  |     std::vector<std::string> outputVec; | ||||||
|  | 
 | ||||||
|  |     std::ifstream inputFile(file); | ||||||
|  |     if (!inputFile.is_open()){ | ||||||
|  |         std::cerr << "File " << file << "not found"; | ||||||
|  |         exit(1); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     std::string line; | ||||||
|  |     while(getline(inputFile, line)){ | ||||||
|  |         outputVec.push_back(line); | ||||||
|  |     } | ||||||
|  |     return outputVec; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // newline, and delimited split
 | ||||||
|  | InputArrays readFile(std::string file, char delim){ | ||||||
|  |     InputArrays outputVec; | ||||||
|  | 
 | ||||||
|  |     std::ifstream inputFile(file); | ||||||
|  |     if (!inputFile.is_open()){ | ||||||
|  |         std::cerr << "File " << file << "not found"; | ||||||
|  |         exit(1); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     std::string line; | ||||||
|  |     while(getline(inputFile, line)){ | ||||||
|  |         outputVec.push_back(ssplit(line, delim)); | ||||||
|  |     } | ||||||
|  |     return outputVec; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | std::vector<std::string> ssplit(std::string str, char delimiter){ | ||||||
|  |     std::vector<std::string> output; | ||||||
|  |     std::istringstream iss(str); | ||||||
|  | 
 | ||||||
|  |     std::string split; | ||||||
|  |     while(getline(iss, split, delimiter)){ | ||||||
|  |         output.push_back(split); | ||||||
|  |     } | ||||||
|  |     return output; | ||||||
|  | } | ||||||
| @ -0,0 +1,15 @@ | |||||||
|  | #ifndef BOILERPLATE_HH | ||||||
|  | #define BOILERPLATE_HH | ||||||
|  | 
 | ||||||
|  | #include <iostream> | ||||||
|  | #include <fstream> | ||||||
|  | #include <sstream> | ||||||
|  | #include <vector> | ||||||
|  | 
 | ||||||
|  | using InputArrays = std::vector<std::vector<std::string>>; | ||||||
|  | 
 | ||||||
|  | InputArrays readFile(std::string, char); | ||||||
|  | std::vector<std::string> readFile(std::string); | ||||||
|  | std::vector<std::string> ssplit(std::string, char); | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
| @ -0,0 +1,30 @@ | |||||||
|  | package main | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"bufio" | ||||||
|  | 	"log" | ||||||
|  | 	"os" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func readFile(filename string) []string { | ||||||
|  | 	file, err := os.Open(filename) | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Fatal(err) | ||||||
|  | 	} | ||||||
|  | 	defer file.Close() | ||||||
|  | 
 | ||||||
|  | 	scanner := bufio.NewScanner(file) | ||||||
|  | 	scanner.Split(bufio.ScanLines) | ||||||
|  | 
 | ||||||
|  | 	var ret []string | ||||||
|  | 
 | ||||||
|  | 	for scanner.Scan() { | ||||||
|  | 		ret = append(ret, scanner.Text()) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return ret | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func main() { | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,8 @@ | |||||||
|  | const fs = require("fs") | ||||||
|  | 
 | ||||||
|  | const input = fs.readFileSync("input.txt", "utf-8", (err, data) => { | ||||||
|  |     if (err) { | ||||||
|  |         console.error(err) | ||||||
|  |         return | ||||||
|  |     } | ||||||
|  | }).split("\n").map(line => line.split(",")) | ||||||
					Loading…
					
					
				
		Reference in New Issue