Oppure

Loading
24/08/10 12:40
morcomucchia
il mio warning è il seguente:

: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result

premetto che il codice è scritto correttamente, riesco anche ad avere l'eseguibile, ma non a mandarlo in esecuzione da terminale.. come posso risovere questo warning?? grazie

il codice è il seguente:
#include <stdio.h>
#include <stdlib.h>

#define kFileDaLeggere          "input.txt"
#define kFileDaScrivere         "output.txt"
#define kLunghezzaMaxStringa    100

#define kErroreIO               -1
#define kErroreMemoria          -2
#define kNessunErrore           0

double      numero1,numero2,numero3;
char        *stringa;

int main (void);
int LeggiDaFile(void);
int ScriviSuFile(void);

int main (void)
{
    int         errore;
    
    errore=LeggiDaFile();
    if(errore)
        return errore;
    errore=ScriviSuFile();
    if(errore)
        return errore;
    
    return kNessunErrore;
}

int LeggiDaFile(void)
{
    FILE        *ingresso;
    
    printf("Lettura dal file %s\n",kFileDaLeggere);
    ingresso=fopen(kFileDaLeggere,"r");
    if(ingresso==NULL)
        return kErroreIO;
    stringa=calloc(kLunghezzaMaxStringa,sizeof(char));
    if(stringa==NULL)
        return kErroreMemoria;
    fscanf(ingresso,"%lg %lg %lg %s",&numero1,&numero2,&numero3,stringa);
    printf("Numero 1: %g\nNumero 2: %g\nNumero 3: %g\nStringa: %s\n",numero1,numero2,numero3,stringa);
    printf("\n");
    fclose(ingresso);
    
    return kNessunErrore;
}

int ScriviSuFile(void)
{
    FILE        *uscita;
    
    printf("Scrittura sul file %s\n",kFileDaScrivere);
    uscita=fopen(kFileDaScrivere,"w");
    if(uscita==NULL)
        return kErroreIO;
    fprintf(uscita,"%g %g %g %s\n",numero1,numero2,numero3,stringa);
    printf("Ora puoi aprire il file %s e verificare che contenga una copia di %s\n",kFileDaScrivere,kFileDaLeggere);
    printf("\n");
    return kNessunErrore;
}
Ultima modifica effettuata da pierotofy 31/08/10 16:04
aaa
31/08/10 14:42
djark
ciao prova a mettere una variabile intera che prende il valore che restituisce la fscanf...
aaa
31/08/10 16:19
pierotofy
    if (fscanf(ingresso,"%lg %lg %lg %s",&numero1,&numero2,&numero3,stringa) == EOF){
    fprintf(stderr,"Impossibile leggere i dati\n");
    return kErroreIO;
}
  
Ultima modifica effettuata da pierotofy 31/08/10 16:19
Il mio blog: piero.dev