|
|
|
|
Strumenti |
14-02-2020, 00:12 | #1 |
Junior Member
Iscritto dal: Jan 2020
Messaggi: 17
|
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); } |
14-02-2020, 07:01 | #2 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3594
|
di primo acchito non vedo la fclose(fin); fclose(fout);
|
14-02-2020, 07:38 | #3 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 2990
|
Non capisco alcune cose.
in primis fin=fopen("text.txt","rn==NULL) non ha il doppio apice di chiusura E poi perchè due puntatori? Potresti fare tutto con un unico fp = fopen("test.txt", "a+"); In questo modo non dovresti avere problemi. |
14-02-2020, 09:10 | #4 |
Junior Member
Iscritto dal: Jan 2020
Messaggi: 17
|
La prova chiedeva esplicitamente l uso di una funzione
void Salva (File * fin, File * fout); Forse ho sbagliato e dovevo usare due file distinti.. Provo a sistemare quello che mi avete fatto notare e vedo che ne esce..grazie! |
14-02-2020, 10:59 | #5 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 2990
|
Capisco che è per un esercizio, però mi pare assurdo fare una cosa del genere SULLO STESSO FILE.
Altra domanda "rn" e "wut" nel fopen.. scusa ma cosa significano? Non trovo nulla nella documentazione .. |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:40.