Salve , sto cercando di risolvere questo esercizio, ma mi sa proprio di avere delle lacune:
Scrivere in C una funzione void fun(FILE *f1, FILE *f2) che prende come parametri due puntatori a file. f1 `e un file di caratteri e f2 un file di interi. f1 contiene sequenze di caratteri, magari parole senza senso, separate da uno o pi`u spazi. Ogni intero contenuto in f2 dovrebbe corrispondere alla somma delle codifiche ASCII dei caratteri in f1. Chiaramente,il primo intero corrisponde alla prima sequenza di caratteri, il secondo alla seconda e cos`ı fino alla fine. Il metodo deve restituire un intero uguale a: −1 se esistono pi` u sequenze di caratteri in f1 che numeri in f2 o viceversa, 0, se un numero presente in f2 non `e uguale alla somma delle codifiche dei caratteri della sequenza corrispondente, n, ovvero numero di sequenze/interi letti,sei due file sono costruiti in modo corretto.
Ho provato così:
codice:#include <stdio.h> #include <string.h> #define MAX 30 int fun(FILE *f1, FILE *f2){ rewind(f1); rewind(f2); char r1,v1; int t=0,r2,k,v2; do{ r2 = fread(&v2, sizeof(int), 1, f2); while(v1=getc(f1)!=' '){ t+=v1; } if (r1==0||r2==0) return -1; if(v2==t) k++; if(v2!=t) return 0;; }while(r1>0||r2>0); return k; } int main(){ FILE *f1,*f2; if((f1=fopen("car.txt","r"))==NULL) printf("errore\n"); if((f2=fopen("num.txt","r"))==NULL) printf("errore"); printf("%d",fun(f1,f2)); return 0; }

Rispondi quotando
