Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Eroare la evaluare  (Citit de 1998 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
mega13d
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« : Ianuarie 30, 2012, 17:08:44 »

Cod:
user.c: In function ‘main’:
user.c:9: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result
user.c:12: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result
Mă ajutați și pe mine vă rog? E primul meu program... Ms anticipat!
Memorat
MciprianM
Nu mai tace
*****

Karma: 87
Deconectat Deconectat

Mesaje: 324



Vezi Profilul
« Răspunde #1 : Ianuarie 30, 2012, 17:19:40 »

Ceea ce ai tu acolo nu e eroare, e doar un avertisment! Functia fscanf returneaza numarul de obiecte citite daca citirea s-a executat cu succes. De aici:http://www.cplusplus.com/reference/clibrary/cstdio/scanf/

Citat
On success, the function returns the number of items successfully read. This count can match the expected number of readings or fewer, even zero, if a matching failure happens.
In the case of an input failure before any data could be successfully read, EOF is returned.

Probabil ca tu nu folosesti valoarea returnata de fscanf si atunci iti atrage atentia asupra acestui lucru. Programele ruleaza chiar daca au primit avertismente la compilare, spre deosebire de erori.
Memorat
caen1
Client obisnuit
**

Karma: 22
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #2 : Ianuarie 30, 2012, 17:21:05 »

Daca vrei sa scapi de warning-urile de pe infoarena, poti incerca sa scrii ceva de genul, desi probabil nu vei folosi variabila mai departe in program
Cod:
int citite = fscanf(...)
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #3 : Ianuarie 30, 2012, 17:22:47 »

Nu e eroare, e doar warning. Se refera la faptul ca codul tau nu trateaza valoarea returnata de scanf. Asta se face folosind functia assert in felul urmator:

Cod:
#include <cstdio>
#include <cassert>

...

assert(scanf("%d %d", &a, &b) == 2);
Memorat

Am zis Mr. Green
mega13d
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #4 : Ianuarie 30, 2012, 18:52:13 »

Mersi pentru răspunsuri, am găsit care a fost greșeala, eu credeam că-mi dă 0 puncte din cauza că e ceva legat cu chestia asta care o dă evaluatorul dar era în altceva. Încă odată mersi la toți per feedback!
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines