infoarena

Comunitate - feedback, proiecte si distractie => Feedback infoarena => Subiect creat de: Mita Cristian din Ianuarie 30, 2012, 17:08:44



Titlul: Eroare la evaluare
Scris de: Mita Cristian din 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!


Titlul: Răspuns: Eroare la evaluare
Scris de: MciprianM din 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/ (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.


Titlul: Răspuns: Eroare la evaluare
Scris de: c a e n din 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(...)


Titlul: Răspuns: Eroare la evaluare
Scris de: Paul-Dan Baltescu din 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);


Titlul: Răspuns: Eroare la evaluare
Scris de: Mita Cristian din 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!