Discussione: Aiuto FILE (C)
View Single Post
Old 14-02-2020, 00:12   #1
9abs
Junior Member
 
Iscritto dal: Jan 2020
Messaggi: 16
Aiuto FILE (C)

Mi da errore nella modifica nel file..mi ritorna solo un 0.
Sembra non riesca a leggere il file in modo corretto ma non mi da nessun errore..

Codice:
#include <stdio.h>
#include <stdlib.h>
void Salva(FILE * fin,FILE * fout);

#define MAX 10

int main(){        //main


	FILE* fin,* fout;
	
	fin=fopen("text.txt","r");
	if(fin==NULL)
		printf("errore apertura fin");
	fout=fopen("text.txt","w");
	if(fout==NULL)
		printf("errore apertura fout");
	Salva(fin,fout);

}

//-------------------------------------

void * xmalloc(int n){ 				//return v.fin
	
	int* v_fin;
	if((v_fin=malloc(n*sizeof(int)))==NULL){
		printf("errore allocazione");
		exit(0);
	}
	return v_fin;
}

int * negativi(int A[],int n,int* count){  	//return v_fin 
	
	int i,j,c;
	j=c=0;
	int* v_fin;
	for(i=0;i<n;i++){
		if(A[i]<0)
			c++;
	}
	
	*count=c;
	v_fin=xmalloc(c);
	
	for(i=0;i<c;i++){
		if(A[i]<0){
			v_fin[j]=A[i];
			j++;
		}
	}
	return v_fin;
}
//-----------------------------------------

void Salva(FILE * fin,FILE * fout){  //f per operazioni sui file 

	int i;
	int count_n,count_neg;
	int *v_inz,*v_fin;
	//il primo numero di file indica quanti elementi ha l'array
	
	fscanf(fin,"%d",&count_n);
	printf("%d",count_n);  //mi stampa un numero random non il primo
                                                                     numero del file

	
	v_inz=xmalloc(count_n);
	
	for(i=0;i<count_n;i++){
	
		fscanf(fin,"%d",&v_inz[i]);
		
		}
	
		
	v_fin=negativi(v_inz,count_n,&count_neg);
	
		fprintf(fout,"%d\n",count_neg);
	
	for(i=0;i<count_neg;i++){
		fprintf(fout,"%d\n",v_fin[i]);
		}
	free(v_inz);
	free(v_fin);
	

}
un po lungo scusate!
9abs  offline   Rispondi citando il messaggio o parte di esso