Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - ignoring return value of fscanf
Forum - C/C++ - ignoring return value of fscanf

Avatar
morcomucchia (Normal User)
Newbie


Messaggi: 9
Iscritto: 28/07/2010

Segnala al moderatore
Postato alle 14:40
Martedì, 24/08/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

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define kFileDaLeggere          "input.txt"
  5. #define kFileDaScrivere         "output.txt"
  6. #define kLunghezzaMaxStringa    100
  7.  
  8. #define kErroreIO               -1
  9. #define kErroreMemoria          -2
  10. #define kNessunErrore           0
  11.  
  12. double      numero1,numero2,numero3;
  13. char        *stringa;
  14.  
  15. int main (void);
  16. int LeggiDaFile(void);
  17. int ScriviSuFile(void);
  18.  
  19. int main (void)
  20. {
  21.     int         errore;
  22.    
  23.     errore=LeggiDaFile();
  24.     if(errore)
  25.         return errore;
  26.     errore=ScriviSuFile();
  27.     if(errore)
  28.         return errore;
  29.    
  30.     return kNessunErrore;
  31. }
  32.  
  33. int LeggiDaFile(void)
  34. {
  35.     FILE        *ingresso;
  36.    
  37.     printf("Lettura dal file %s\n",kFileDaLeggere);
  38.     ingresso=fopen(kFileDaLeggere,"r");
  39.     if(ingresso==NULL)
  40.         return kErroreIO;
  41.     stringa=calloc(kLunghezzaMaxStringa,sizeof(char));
  42.     if(stringa==NULL)
  43.         return kErroreMemoria;
  44.     fscanf(ingresso,"%lg %lg %lg %s",&numero1,&numero2,&numero3,stringa);
  45.     printf("Numero 1: %g\nNumero 2: %g\nNumero 3: %g\nStringa: %s\n",numero1,numero2,numero3,stringa);
  46.     printf("\n");
  47.     fclose(ingresso);
  48.    
  49.     return kNessunErrore;
  50. }
  51.  
  52. int ScriviSuFile(void)
  53. {
  54.     FILE        *uscita;
  55.    
  56.     printf("Scrittura sul file %s\n",kFileDaScrivere);
  57.     uscita=fopen(kFileDaScrivere,"w");
  58.     if(uscita==NULL)
  59.         return kErroreIO;
  60.     fprintf(uscita,"%g %g %g %s\n",numero1,numero2,numero3,stringa);
  61.     printf("Ora puoi aprire il file %s e verificare che contenga una copia di %s\n",kFileDaScrivere,kFileDaLeggere);
  62.     printf("\n");
  63.     return kNessunErrore;
  64. }


Ultima modifica effettuata da pierotofy il 31/08/2010 alle 18:04
PM
Avatar
djark (Normal User)
Newbie


Messaggi: 4
Iscritto: 31/08/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 16:42
Martedì, 31/08/2010
ciao prova a mettere una variabile intera che prende il valore che restituisce la fscanf...

PM
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6110
Iscritto: 04/12/2003

Up
0
Down
V
Segnala al moderatore
Postato alle 18:19
Martedì, 31/08/2010
Codice sorgente - presumibilmente C/C++

  1. if (fscanf(ingresso,"%lg %lg %lg %s",&numero1,&numero2,&numero3,stringa) == EOF){
  2.     fprintf(stderr,"Impossibile leggere i dati\n");
  3.     return kErroreIO;
  4. }


Ultima modifica effettuata da pierotofy il 31/08/2010 alle 18:19


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM