Sa se scrie un program de copiere a unui fisier in alt fisier, folosindu-se numai functii de prelucrare pe caractere.
Rez
#include <stdio.h>
void main(int argc,char *argv[])
{
FILE *s,*d;
int c;
if (argc!=3){
fprintf(stderr,"Utilizare : copy sursa dest \n");
exit(1);
}
if ((s=fopen(argv[1],"rt"))==NULL){
fprintf(stderr,"Eroare deschidere fisier %s \n",argv[1]);
exit(1);
}
if ((d=fopen(argv[2],"wt"))==NULL){
fprintf(stderr,"Eroare deschidere fisier %s \n",argv[2]);
exit(1);
}
c=getc(s);
while (c!=EOF){
fputc(c,d);
c=fgetc(s);
}
fclose(s);
fclose(d);
}
Aceeasi problema ca mai sus, dar se vor folosi numai functii pe siruri de caractere.
Rez
#include <stdio.h>
char buffer[1000];
void main(int argc,char *argv[])
{
FILE *s,*d;
char *sir;
if (argc!=3){
fprintf(stderr,"Utilizare : copy sursa dest \n");
exit(1);
}
if ((s=fopen(argv[1],"rt"))==NULL){
fprintf(stderr,"Eroare deschidere fisier %s \n",argv[1]);
exit(1);
}
if ((d=fopen(argv[2],"wt"))==NULL){
fprintf(stderr,"Eroare deschidere fisier %s \n",argv[2]);
exit(1);
}
sir=fgets(buffer,1000,s);
while (sir!=NULL){
fputs(buffer,d);
sir=fgets(buffer,1000,s);
}
fclose(s);
fclose(d);
}
Aceeasi problema, dar se vor folosi numai functii la nivel de inregistrare.
Rez
#include <stdio.h>
char buffer[1000];
void main(int argc,char *argv[])
{
FILE *s,*d;
size_t n;
if (argc!=3){
fprintf(stderr,"Utilizare : copy sursa dest \n");
exit(1);
}
if ((s=fopen(argv[1],"rt"))==NULL){
fprintf(stderr,"Eroare deschidere fisier %s \n",argv[1]);
exit(1);
}
if ((d=fopen(argv[2],"wt"))==NULL){
fprintf(stderr,"Eroare deschidere fisier %s \n",argv[2]);
exit(1);
}
n=fread(buffer,1,1000,s);
while (n>0){
fwrite(buffer,1,n,d);
n=fread(buffer,1,1000,s);
}
fclose(s);
fclose(d);
}
Scrieti un program care sa afiseze la imprimanta continutul unui fisier text.
Rez
#include <stdio.h>
FILE *fp,*print;
char c;
void main(void)
{
char fname[12];
printf("Numele fisierului: ");scanf("%s",fname);
fp = fopen(fname,"r");
print = fopen("PRN","w");
do {
c = getc(fp);
if (c != EOF) {
putchar(c);
putc(c,print);
}
}while (c != EOF);
fclose(fp);
fclose(print);
}