All pastes #515693 Raw Edit

Unnamed

public text v1 · immutable
#515693 ·published 2007-05-28 10:21 UTC
rendered paste body
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
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], i, length = 0, cnt = 0;
   float prosjek = 0.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.0;
      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, "%f\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;
}