#include #include #include int write_file(const char *text, const char *file); int main() { const char *end = "NONAME"; char ime[16], prezime[32], jmbag[11], filename[25], *ptr; int bod[5], prosjek = 0, i, length = 0, cnt = 0; FILE *fin; if ((fin = fopen("temp.log", "w+")) == NULL) { printf("Error opening temp file!\n"); return 1; } while (1) { printf("Ime: "); fgets(ime, sizeof(ime), stdin); ime[strcspn(ime, "\n")] = 0x00; if (!strcmp(ime, end)) break; for(i = strlen(ime); i < 16; i++) ime[i] = ' '; ime[15] = 0x00; printf("Prezime: "); fgets(prezime, sizeof(prezime), stdin); prezime[strcspn(prezime, "\n")] = 0x00; for (i = strlen(prezime); i < 32; i++) prezime[i] = ' '; prezime[31] = 0x00; printf("JMBAG: "); fgets(jmbag, sizeof(jmbag), stdin); jmbag[strcspn(jmbag, "\n")] = 0x00; for (i = strlen(jmbag); i < 10; i++) jmbag[i] = '0'; jmbag[10] = 0x00; prosjek = 0; for (i = 0; i < 4; i++) { do { printf("%d. bodovi: ", i + 1); scanf("%d", &bod[i]); } while (bod[i] < 0 || bod[i] > 20); prosjek += bod[i]; } prosjek /= 4; cnt++; getchar(); length += fprintf(fin, "%s#%s#%s#", jmbag, ime, prezime); if (bod[0] < 10) length += fprintf(fin, "0%d#", bod[0]); else length += fprintf(fin, "%d#", bod[0]); if (bod[1] < 10) length += fprintf(fin, "0%d#", bod[1]); else length += fprintf(fin, "%d#", bod[1]); if (bod[2] < 10) length += fprintf(fin, "0%d#", bod[2]); else length += fprintf(fin, "%d#", bod[2]); if (bod[3] < 10) length += fprintf(fin, "0%d#", bod[3]); else length += fprintf(fin, "%d#", bod[3]); length += fprintf(fin, "%d\n", prosjek); } ptr = (char *) calloc(length + 1, 1); i = 0; rewind(fin); fread(ptr, 1, length, fin); fclose(fin); printf("Filename: "); fgets(filename, sizeof(filename), stdin); filename[strcspn(filename, "\n")] = 0x00; if (write_file(ptr, filename)) printf("Error\n"); else printf("Sucessfull!\n"); free(ptr); getche(); return 0; } int write_file(const char *text, const char *file) { FILE *fin; if ((fin = fopen(file, "w")) == NULL) return 1; if (fwrite(text, 1, strlen(text), fin) < strlen(text)) { fclose(fin); return 1; } fclose(fin); return 0; }