martedì 14 aprile 2009

Esercizio x le vacanze n°2

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  
#include  
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 
            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(); 
}

 

 

Nessun commento: