#include #include #include void fileName(char *dest, int num) { strcpy(dest, "storage/"); int len = 0, tempNum = num; while(tempNum > 0) { tempNum /= 10; len++; } int *numArr = (int*) malloc(len * sizeof(int)); char *numString = (char*) malloc((len + 1) * sizeof(char)); int i = 0; tempNum = num; while(i < len) { num /= 10; numArr[len - ++i] = tempNum - 10 * num; tempNum = num; } for(i = 0; i < len; i++) { numString[i] = numArr[i] + '0'; } numString[len] = '\0'; strcat(dest, numString); strcat(dest, ".txt"); return; } void check(float *storage, float check, int max) { if ((check > *storage) == max) *storage = check; return; } int main() { int fileNum = 1; char fName[50]; fileName(fName, fileNum++); FILE *f = fopen(fName, "r"); FILE *out = fopen("storage/stats.txt", "w"); if(!out) printf("Could not open output file"); fprintf(out, "Overall: 0.000-5.000v, avg:0.000v\nTotal Time: 0 Minutes \n\n"); int i = 0; float min = 5, max = 0, localMin = 5, localMax = 0; double sum = 0, localSum = 0; unsigned long count = 0; int time = 0; while(f) { char c = getc(f); char str[6]; int j = 0; while(c != EOF) { if(c != '\n') str[j++] = c; if(j >= 5) { str[5] = '\0'; float f = atof((str)); for(int k = 0; k < 6; k++) str[k] = 0; i++; j = 0; check(&localMin, f, 0); check(&localMax, f, 1); localSum += f; if(i >= 6000) { fprintf(out, "%d-%d minutes: %.3f-%.3fv, avg:%.3fv.\n", time, time + 10, localMin, localMax, localSum / i); sum += localSum; count += i; check(&min, localMin, 0); check(&max, localMax, 1); localSum = 0; localMin = 5; localMax = 0; i = 0; time += 10; } } c = getc(f); } fprintf(out, "%d-%d minutes: %.3f-%.3fv, avg:%.3fv.\n", time, time + 1 + i / 600, localMin, localMax, localSum / i); sum += localSum; count += i; check(&min, localMin, 0); check(&max, localMax, 1); localSum = 0; localMin = 5; localMax = 0; i = 0; time += 20; fclose(f); printf("Done with %s\n", fName); fileName(fName, fileNum++); f = fopen(fName, "r"); } fseek(out, 9, SEEK_SET); //9 = length of total header fprintf(out, "%.3f-%.3fv, avg:%.3fv\n", min, max, sum / count); fprintf(out, "Total Time: %d Minutes", 1 + count / 600); fclose(out); return 0; }