проблемы с fread () всегда возвращаются 1

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

Содержание файла:

message1, message2, 53467 

программа для чтения простого файла:

 int bytesRead; FILE* CSV; CSV = fopen("\\Temp\\csv.txt", "rb"); char dataBuf[128]; while ( (bytesRead = fread(dataBuf, 1, sizeof(dataBuf), CSV) > 0) ) { if (ferror(CSV)) //handle error //do stuff with dataBuf contents } 

fread () всегда возвращается 1. ferror также не вводится, поэтому ошибка чтения файла отсутствует. Однако, массив символов dataBuf заполняется всем сообщением из файла. Я использую fread в сочетании с другой функцией, поэтому мне нужно знать, сколько байтов было прочитано с помощью fread (). Есть идеи?

Приоритет имеет значение.

Добавьте круглые скобки вокруг назначения.

 while ( ( bytesRead = fread(dataBuf, 1, sizeof(dataBuf), CSV) ) > 0 ) ^ ^ 

см. C_Operator_Precedence_Table

Если вы видите раздел 1.5.1 File Copying » на языке The C programming Language By Brian W. Kernighan and Dennis M. Ritchie вы получите четкое объяснение этому.