Forum - C/C++
- ignoring return value of fscanf
morcomucchia (Normal User)
Newbie
Messaggi: 9
Iscritto: 28/07/2010
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:
Codice sorgente - presumibilmente C
#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\n Numero 2: %g\n Numero 3: %g\n Stringa: %s\n " , numero1
, numero2
, numero3
, stringa
) ; 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
) ; return kNessunErrore;
}
Ultima modifica effettuata da pierotofy il 31/08/2010 alle 18:04
djark (Normal User)
Newbie
Messaggi: 4
Iscritto: 31/08/2010
ciao prova a mettere una variabile intera che prende il valore che restituisce la fscanf...
pierotofy (Admin )
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
Codice sorgente - presumibilmente C/C++
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 il 31/08/2010 alle 18:19