problemy z fread () zawsze zwracane 1
Patrzyłem na podobne pytania, ale moje są nieco inne. Upewnij się, że otwieram plik w trybie binarnym i sprawdzam, czy wystąpił błąd podczas odczytu.
Zawartość pliku:
message1, message2, 53467
program do czytania prostego pliku:
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 () zawsze zwraca 1. ferror również nie jest wprowadzany, więc nie ma błędu odczytu pliku. Jednak tablica danych dataBuf jest wypełniona całą wiadomością z pliku. Używam fread w połączeniu z inną funkcją, więc muszę wiedzieć, ile bajtów odczytano za pomocą fread (). Jakieś pomysły?