Don't like ads? PRO users don't see any ads ;-)
Guest

gronostaj_antonii

By: a guest on Jun 1st, 2012  |  syntax: C  |  size: 1.81 KB  |  hits: 22  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define N 10
  4. //Operacje na plikach
  5. int main(void) {
  6.  
  7.         float A[N], liczba;
  8.         int i;
  9.         char c;
  10.         FILE *txt, *bin;
  11.  
  12.         //zadanie 5
  13.         printf("Zad 5.  Wylosowac wartosci i utworzyc pliki? t/n ");
  14.         scanf(" %c", &c);
  15.         if(c=='t') {
  16.                 srand(time(NULL));
  17.                 for(i=0;i<N;i++)
  18.                         A[i]=rand()/1000.0;
  19.  
  20.                 txt = fopen("tekst.txt", "w");
  21.                 bin = fopen("tekst.dat", "wb");
  22.                 if(!txt) {printf("Txt error\n"); exit(-1); }
  23.                 if(!bin) {printf("Bin error\n"); exit(-1); }
  24.  
  25.                 for(i=0;i<N;i++) {
  26.                         fprintf(txt,"%f\n",A[i]);
  27.                         fwrite(A+i,sizeof(*A),1,bin);
  28.                 }
  29.                 printf("Utworzono pliki\n");
  30.                 fclose(txt);
  31.                 fclose(bin);
  32.         }
  33.  
  34.         //zadanie 5a
  35.         printf("Zad 5a. Wyswietlic rozmiar plikow? t/n ");
  36.         scanf(" %c", &c);
  37.         if(c=='t') {
  38.                 txt = fopen("tekst.txt", "r");
  39.                 bin = fopen("tekst.dat", "rb");
  40.                 if(!txt) {printf("Txt error\n"); exit(-1); }
  41.                 if(!bin) {printf("Bin error\n"); exit(-1); }
  42.  
  43.                 fseek(txt,0,SEEK_END);
  44.                 fseek(bin,0,SEEK_END);
  45.                 printf("\nRozmiar pliku tekstowego: %ld bajtow",ftell(txt));
  46.                 printf("\nRozmiar pliku binarnego: %d bajtow\n\n",ftell(bin));
  47.                 fclose(bin);
  48.                 fclose(txt);
  49.         }
  50.  
  51.         //zadanie 5b
  52.         printf("Zad 5b. Wyzerowac wartosci indeksow podzielnych przez 3? t/n ");
  53.         scanf(" %c", &c);
  54.         if(c=='t') {
  55.                 bin = fopen("tekst.dat", "r+b");
  56.                 if(!bin) {printf("Bin error\n"); exit(-1); }
  57.  
  58.                 for(i=0;i<N;i+=3){
  59.                         float k=0.0;
  60.                         fseek(bin,i*sizeof(float),0);
  61.                         fwrite(&k,sizeof(k),1,bin);
  62.                 }
  63.                 fclose(bin);
  64.                 printf("Wyzerowano\n");
  65.         }
  66.  
  67.         printf("Wyswietlic plik binarny? t/n ");
  68.         scanf(" %c", &c);
  69.         if(c=='t') {
  70.                 bin = fopen("tekst.dat", "rb");
  71.                 if(!bin) {printf("Bin error\n"); exit(-1); }
  72.                 printf("i\tWartosc\n");
  73.                 for(i=0;i<N;i++) {
  74.                         fread(&liczba,sizeof(liczba),1,bin);
  75.                         printf("%d \t%f\n",i,liczba);
  76.                 }
  77.                 fclose(bin);
  78.         }
  79.         return 0;
  80. }