
gronostaj_antonii
By: a guest on
Jun 1st, 2012 | syntax:
C | size: 1.81 KB | hits: 22 | expires: Never
#include <stdio.h>
#include <stdlib.h>
#define N 10
//Operacje na plikach
int main(void) {
float A[N], liczba;
int i;
char c;
FILE *txt, *bin;
//zadanie 5
printf("Zad 5. Wylosowac wartosci i utworzyc pliki? t/n ");
scanf(" %c", &c);
if(c=='t') {
srand(time(NULL));
for(i=0;i<N;i++)
A[i]=rand()/1000.0;
txt = fopen("tekst.txt", "w");
bin = fopen("tekst.dat", "wb");
if(!txt) {printf("Txt error\n"); exit(-1); }
if(!bin) {printf("Bin error\n"); exit(-1); }
for(i=0;i<N;i++) {
fprintf(txt,"%f\n",A[i]);
fwrite(A+i,sizeof(*A),1,bin);
}
printf("Utworzono pliki\n");
fclose(txt);
fclose(bin);
}
//zadanie 5a
printf("Zad 5a. Wyswietlic rozmiar plikow? t/n ");
scanf(" %c", &c);
if(c=='t') {
txt = fopen("tekst.txt", "r");
bin = fopen("tekst.dat", "rb");
if(!txt) {printf("Txt error\n"); exit(-1); }
if(!bin) {printf("Bin error\n"); exit(-1); }
fseek(txt,0,SEEK_END);
fseek(bin,0,SEEK_END);
printf("\nRozmiar pliku tekstowego: %ld bajtow",ftell(txt));
printf("\nRozmiar pliku binarnego: %d bajtow\n\n",ftell(bin));
fclose(bin);
fclose(txt);
}
//zadanie 5b
printf("Zad 5b. Wyzerowac wartosci indeksow podzielnych przez 3? t/n ");
scanf(" %c", &c);
if(c=='t') {
bin = fopen("tekst.dat", "r+b");
if(!bin) {printf("Bin error\n"); exit(-1); }
for(i=0;i<N;i+=3){
float k=0.0;
fseek(bin,i*sizeof(float),0);
fwrite(&k,sizeof(k),1,bin);
}
fclose(bin);
printf("Wyzerowano\n");
}
printf("Wyswietlic plik binarny? t/n ");
scanf(" %c", &c);
if(c=='t') {
bin = fopen("tekst.dat", "rb");
if(!bin) {printf("Bin error\n"); exit(-1); }
printf("i\tWartosc\n");
for(i=0;i<N;i++) {
fread(&liczba,sizeof(liczba),1,bin);
printf("%d \t%f\n",i,liczba);
}
fclose(bin);
}
return 0;
}