From c4f926438dcb8abe805e910399940f79ff643c4b Mon Sep 17 00:00:00 2001 From: ziejd2 Date: Thu, 14 Sep 2017 15:39:41 -0500 Subject: Add files via upload --- sourcecodes/k-best/src/files.c | 59 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 sourcecodes/k-best/src/files.c (limited to 'sourcecodes/k-best/src/files.c') diff --git a/sourcecodes/k-best/src/files.c b/sourcecodes/k-best/src/files.c new file mode 100644 index 00000000..3227f63c --- /dev/null +++ b/sourcecodes/k-best/src/files.c @@ -0,0 +1,59 @@ +#include +#include +#include + +#include "files.h" + +int nof_digits(int n) +{ + int c=0; + do { + c += 1; + n /= 10; + } while(n); + return c; +} + +int nof_lines(char* filename) { + int nof_lines = 0; + FILE* f = fopen(filename,"r"); + int c = 0; + while(EOF != (c=fgetc(f))) + if(c=='\n') ++nof_lines; + fclose(f); + return nof_lines; +} + +char* create_fn(char* dirname, int i, char* ext) +{ char* fn = malloc((strlen(dirname)+1+nof_digits(i)+strlen(ext)+1) + *sizeof(char)); + sprintf(fn,"%s/%d%s", dirname,i,ext); + return fn; +} + +FILE* open_file(char* dirname, int i, char* ext, char* mode) +{ + FILE* f; + char* fn = create_fn(dirname, i, ext); + sprintf(fn,"%s/%d%s", dirname,i,ext); + f = fopen(fn, mode); + free(fn); + return f; +} + +FILE** open_files(int nof_vars, char* dirname, char* ext, char* mode) +{ + FILE** files = malloc(nof_vars * sizeof(FILE*)); + int i; + for(i=0; i