Ragazzi ho riscritto il codice in questo modo
codice:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
main(){
//inizio dichiarazioni
FILE* pi;
FILE* pu;
int i,n,limite;
char s[128];
char s2[128];
int n2=0;
int lunsprec=128;
int a,b;
//fine dichiarazioni
pi=fopen("ingresso.txt","r");
if(pi==NULL){perror("Il file non esiste!"); exit(1);}
for(i=0;i<=128;i++){
limite=fscanf(pi,"%s%d",&s,&n);
if(limite==EOF) break;
printf("Coppia letta: %s %d\n",s,n);
a=strlen(s);
b=lunsprec;
if(a<b && n>40){
strcpy(s2,s);
n2=n;
}
else continue;
lunsprec=strlen(s);
}
fclose(pi);
printf("La coppia che sara' scritta su file e': %s %d\n",s2,n2);
pu=fopen("uscita.txt","w");
fprintf(pu,"%s %d",s2,n2);
if(pu==NULL){
perror("Errore!");
exit(1);
}
else printf("Il file uscita e' stato creato correttamente.\n\nFine Programma.\n");
fclose(pu);
}
e adesso il programma funziona. Grazie lo stesso a tutti.