leggere un file costituito da record (righe) aventi 2 compi:
- un campo di tipo string (array di char) ed un secondo campo di tipo int
- scrivere i medesimi record con i medesimi campi su di un altro file
- 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
- scrivere su di un altro file i record in ordine inverso
- 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
---------------------------------------------------------------------
Esecuzione
---------------------------------------------------------------------
Copia
---------------------------------------------------------------------
Compresi
---------------------------------------------------------------------
Inverso
Commenti
Posta un commento