Probleme rezolvate 11
  1. Problema1
  2. Problema2
  3. Problema3
  4. Problema4

Problema1

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);
  }

Problema 2

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);
  }

Problema 3

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);
  }

Problema 4

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);
}

Previous |