veselinsavov

3.25.15 PIK2 - var2

Mar 25th, 2015
304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.59 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.     FILE *txtFile = NULL, *binFile = NULL;
  6.     char *string[15];
  7.     int *firstIntArr, *secondIntArr, ch = 0, i, row = 0, strRow = 0, cow = 0, type = 1;
  8.     double *doubleArr;
  9.  
  10.     for (i = 0; i < 15; i++){
  11.         string[i] = (char *)malloc(15);
  12.     }
  13.  
  14.     firstIntArr = (int *)malloc(15 * sizeof(int));
  15.     secondIntArr = (int *)malloc(15 * sizeof(int));
  16.     doubleArr = (double *)malloc(15 * sizeof(double));
  17.  
  18.     txtFile = fopen("txtFile.txt", "r");
  19.     binFile = fopen("binFile", "wb");
  20.     if (binFile == NULL || txtFile == NULL) {
  21.         printf("File cannot be open!\n");
  22.         exit(1);
  23.     }
  24.  
  25.     printf("from txt file:\n");
  26.  
  27.     while ((ch = fgetc(txtFile)) != EOF) {
  28.  
  29.         switch (type)
  30.         {
  31.         case 1: string[strRow][cow] = (char)ch; break;
  32.         case 2: firstIntArr[row] = (int)ch; break;
  33.         case 3: secondIntArr[row] = (int)ch; break;
  34.         case 4: doubleArr[row] = (double)ch; break;
  35.             default: break;
  36.         }
  37.  
  38.         if (ch == ';')
  39.         {
  40.             type++;
  41.             cow = 0;
  42.             row = 0;
  43.         }
  44.         else
  45.         {
  46.             cow++;
  47.             row++;
  48.         }
  49.  
  50.         if (type == 5)
  51.         {
  52.             type = 1;
  53.             strRow++;
  54.         }
  55.  
  56.         printf("%c", ch);
  57.     }
  58.     fclose(txtFile);
  59.  
  60.     for (i = 0; i < 15; i++){
  61.         if ((fwrite(&string[i], 1, sizeof(string), binFile) != sizeof(string)) ||
  62.             (fwrite(&firstIntArr[i], sizeof(int), 1, binFile) != 1) ||
  63.             (fwrite(&secondIntArr[i], sizeof(int), 1, binFile) != 1) ||
  64.             (fwrite(&doubleArr[i], sizeof(double), 1, binFile) != 1))
  65.         {
  66.             exit(2);
  67.             printf("Err!");
  68.         }
  69.     }
  70.     fclose(binFile);
  71.  
  72.     for (i = 0; i < 15; i++)
  73.     {
  74.         free(string[i]);
  75.     }
  76.  
  77.     free(firstIntArr);
  78.     free(secondIntArr);
  79.     free(doubleArr);
  80.     return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment