Programe demonstrative
Primele trei programe primesc ca parametri in linia de comanda numele fisierelor pe care le vor prelucra. Ultimul program primeste ca parametru in linia de comanda numele directorului al c& 656g61g #259;rui continut va fi afisat.
1) Determinarea marimii unui fisier
#include <stdio.h>
FILE *f;
int main(int ac, char **av)
f = fopen(av[1],'rb');
if (!f)
fseek(f,0,SEEK_END);
fprintf(stderr,'File %s, size %ldn',
ftell(f));
fclose(f);
return 0;
}
2) Copierea unui fisier
Functiile fgets si fputs se folosesc pentru fluxuri deschise in mod text. Cum se utilizeaza pentru copierea unui fisier text?
#include <stdio.h>
#define LSIR 80
char lin[LSIR];
FILE *fi, *fo;
int main(int ac, char **av)
fi=fopen(av[1],'rt'); fo=fopen(av[2],'wt');
if (!fi || !fo)
while (fgets(lin,LSIR,fi))
fputs(lin,fo);
fclose(fi); fclose(fo);
return 0;
}
Functiile fread si fwrite se folosesc pentru fluxuri deschise in mod binar. Cum se utilizeaza pentru copierea unui fisier binar?
#include <stdio.h>
#define LZON 80
char zon[LZON];
FILE *fi, *fo;
int k;
int main(int ac, char **av)
fi=fopen(av[1],'rb'); fo=fopen(av[2],'wb');
if (!fi || !fo)
while (k=fread(zon,1,LZON,fi))
fwrite(zon,1,k,fo);
fclose(fi); fclose(fo);
return 0;
}
3) Prelucrarea unui fisier text
Programul prezentat in continuare citeste un fisier text care contine pe fiecare linie un sir de caractere (fara spatii) si trei valori intregi, si afiseaza pe terminal numele pe 12 pozitii aliniat la stinga si media aritmetica a celor trei valori intregi.
#include <stdio.h>
FILE *fi;
char num[10];
int a,b,c;
double m;
int main(int ac, char **av)
fi=fopen(av[1],'rt');
if (!fi)
while (fscanf(fi,'%s %d %d %d',
num,&a,&b,&c)!=EOF)
fclose(fi);
return 0;
}
4) Afisarea continutului unui director
#include <dirent.h>
#include <stdio.h>
DIR *dir;
struct dirent *ent;
int main(int ac, char **av)
dir = opendir(av[1]);
if (!dir)
while (ent=readdir(dir))
printf('%sn',ent->d_name);
return 0;
}
|