Esercizio 2 Vacanze

leggere un file costituito da record (righe) aventi 2 compi:

  1. un campo di tipo string (array di char) ed un secondo campo di tipo int
  2. scrivere i medesimi record con i medesimi campi su di un altro file
  3. scrivere su di un altro file i record che hanno i numeri compresi in un intervallo (a,b) dove a e b sono numeri digitati da tastiera
  4. scrivere su di un altro file i record in ordine inverso
  5. scrivere la funzione che stampa i record dei files

---------------------------------------------------------------------

#include <stdio.h>
#include <string.h>
char nome[3];
int num;
int numInv[100];
char nomInv[3][100];
FILE *f1;
FILE *f2;
FILE *f3;
FILE *f5;
int i=0;
int x=0;
int a,b;
void copia(){
    f1=fopen("eser.txt","r");
    f2=fopen("copia.txt","w");
    fscanf(f1,"%s %d",nome,&num);
    fprintf(f2,"%s %d\n",nome,num);
    while((nome!="xx")&&(num!=999)){
        fscanf(f1,"%s %d",nome,&num);
        fprintf(f2,"%s %d\n",nome,num);
    }
    fclose(f1);
    fclose(f2);
}

void compresi(){
    f1=fopen("eser.txt","r");
    f3=fopen("compres.txt","w");
    printf("inserisci due numeri interi");
    scanf("%d %d",&a,&b);
    fscanf(f1,"%s %d",nome,&num);
    while((nome!="xx")&&(num!=999)){
        if((num>a)&&(num<b)){
            fprintf(f3,"%s %d\n",nome,num);
        }
        fscanf(f1,"%s %d",nome,&num);
    }
fclose(f1);
fclose(f3);
}

void inverso(){
    f1=fopen("eser.txt","r");
    f5=fopen("inverse.txt","w");
    i=1;
    fscanf(f1,"%s %d",nome,&num);
    strcpy(nomInv[0],nome);
    numInv[0]=num;
    while(num!=999){
        fscanf(f1,"%s %d",nome,&num);
        strcpy(nomInv[i],nome);
        numInv[i]=num;
        i++;
    }
    x=i;
    for(i==x;i!=-1;i--){
            fprintf(f5,"%s %d\n",nomInv[i],numInv[i]);
        }
    }

int main(){
    copia();
    compresi();
    inverso();
}

 

---------------------------------------------------------------------

Dati iniziali

originale

---------------------------------------------------------------------

Esecuzione

esecuzione

---------------------------------------------------------------------

Copia

copia

---------------------------------------------------------------------

Compresi

compresi

---------------------------------------------------------------------

Inverso

inverso

Commenti