Advertisement
Tobiahao

09_PLIKI_03

Jan 13th, 2017
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.82 KB | None | 0 0
  1. /*
  2. 3. Napisz program, który zapisze do pliku macierz o wymiarach 4×4, a następnie ją odczyta i wypisze na ekran. Wartości elementów macierz powinny być losowane z przedziału (−10,10). Zarówno w pliku, jak i na ekranie macierz ma być podzielona na wiersze.
  3. */
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <time.h>
  8. #define SIZE 4
  9.  
  10. void fill_matrix(int8_t matrix[SIZE][SIZE])
  11. {
  12.     srand(time(NULL));
  13.     for(int i = 0; i < SIZE; i++){
  14.         for(int j = 0; j < SIZE; j++){
  15.             matrix[i][j] = (rand() % 21) - 10;
  16.         }
  17.     }
  18. }
  19.  
  20. void save_to_file(FILE *FILE, int8_t matrix[SIZE][SIZE])
  21. {
  22.     for(int i = 0; i < SIZE; i++){
  23.         for(int j = 0; j < SIZE; j++){
  24.             fprintf(FILE, "%d ", matrix[i][j]);
  25.         }
  26.         fprintf(FILE, "\n");
  27.     }
  28. }
  29.  
  30. void read_from_file(FILE *FILE)
  31. {
  32.     int tmp;
  33.     uint8_t rows_counter = 1;
  34.     while(!feof(FILE)){
  35.         fscanf(FILE, "%d", &tmp);
  36.         if(!feof(FILE)){
  37.             printf("%d ", tmp);
  38.         }
  39.        
  40.         if(rows_counter == SIZE){
  41.             printf("\n");
  42.             rows_counter = 0;
  43.         }
  44.         rows_counter++;
  45.     }
  46. }
  47.  
  48. int main(void)
  49. {
  50.     int8_t matrix[SIZE][SIZE];
  51.     fill_matrix(matrix); // Wypelnij macierz
  52.    
  53.     FILE *MATRIX_FILE;
  54.     MATRIX_FILE = fopen("matrix.txt", "w+");
  55.    
  56.     if(MATRIX_FILE == NULL){
  57.         printf("Blad otwarcia pliku!\n");
  58.         return -1;
  59.     }
  60.    
  61.     save_to_file(MATRIX_FILE, matrix); // Zapisz macierz do pliku
  62.    
  63.     if(fseek(MATRIX_FILE, 0, SEEK_SET) == -1){
  64.         printf("Blad przesuwania wskazniku pliku!\n");
  65.         return -1;
  66.     }
  67.    
  68.     read_from_file(MATRIX_FILE); // Odczytaj macierz z pliku
  69.    
  70.     if(fclose(MATRIX_FILE)){
  71.         printf("Blad zamkniecia pliku!\n");
  72.         return -1;
  73.     }
  74.    
  75.     return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement