2016-11-07 2 views
0

Я составил .cpp файл с г ++ и только ошибками, которые я имел была такая:Ошибка компиляции в C++ для чтения файлов

histogram.cpp:24:26: error: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result [-Werror=unused-result] 
fread(&altura,4,1,fp); 
        ^

Я знаю, что я использую очень ограничительные флаги, которые лечат предупреждения, как ошибки, но пытаясь исправить эти ошибки, я потерпел неудачу, поэтому, если кто-то может принести немного света в этой проблеме, я буду очень доволен. Флаги я использую являются:

g++ -std=c++11 -Wall -Werror -O3 histogram.cpp -o histogram 

Спасибо.

+0

'fread' возвращает' size_t' значение, но вы ничего не делаете с возвратом (по сути, рассматриваете его как функцию «void»). Попробуйте присвоить результат 'fread' переменной переменной' size_t'. –

+0

Это возвращаемое значение существует по причине. Если 'fread' не делает то, что вы просите, разве вы не хотите знать, что это так? – WhozCraig

+2

На этот раз сообщение об ошибке не должно винить. Как ясно сказано: вы игнорируете возвращаемое значение, которое вы не должны игнорировать. –

ответ

3

Я думаю, вы не использовать возвращаемое значение "Fread", вам нужно что-то вроде этого:

size_t result = fread (buffer, 1, lSize, pFile); 
    if (result > 0) 
    // do smthng 

вместо

fread (buffer,1,lSize,pFile); 
+1

Возвращаемое значение может быть переведено в 'void', как в' (void) fread (buffer, 1, lSize, pFile); ' –

Смежные вопросы