Функция Си fread и функция QFile read, нестыковка |
Здравствуйте, гость ( Вход | Регистрация )
Функция Си fread и функция QFile read, нестыковка |
AD |
22.12.2008, 14:36
Сообщение
#1
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Ну чтобы лучше понять ошибку вот из MSDN описание fread:
Цитата Reads data from a stream. size_t fread( void *buffer, size_t size, size_t count, FILE *stream ); Parameters buffer - Storage location for data size - Item size in bytes count - Maximum number of items to be read stream - Pointer to FILE structure Return Values fread returns the number of full items actually read, which may be less than count if an error occurs or if the end of the file is encountered before reaching count. Use the feof or ferror function to distinguish a read error from an end-of-file condition. If size or count is 0, fread returns 0 and the buffer contents are unchanged. А вот Qt-шный read(): Цитата qint64 QIODevice::read ( char * data, qint64 maxSize ) Reads at most maxSize bytes from the device into data, and returns the number of bytes read. If an error occurs, such as when attempting to read from a device opened in WriteOnly mode, this function returns -1. 0 is returned when no more data is available for reading. See also readData(), readLine(), and write(). Вот как его я использую (Uint = unsigned int)
Вот как использую Qt-шный read()
Хочу, чтобы код выполнял идентичные действия. Подскажите, пожалуйста, что не так? Как правильно преобразовать значение прочитанное из файла? |
|
|
SABROG |
22.12.2008, 14:44
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
А почему больше 1, если метод сообщает об ошибках или конце только при -1 и 0 ? Тогда уж >0. Хочу, чтобы код выполнял идентичные действия. Подскажите, пожалуйста, что не так? Как правильно преобразовать значение прочитанное из файла? А в чем вопрос состоит вообще, т.е. что не так с кодом. Предлагаешь проверить его каждому у себя на компьютере ? |
|
|
AD |
22.12.2008, 15:03
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
А почему больше 1, если метод сообщает об ошибках или конце только при -1 и 0 ? Тогда уж >0. А в чем вопрос состоит вообще, т.е. что не так с кодом. Предлагаешь проверить его каждому у себя на компьютере ? Да уже разобрался. Просто необходимо было вот так делать:
|
|
|
Текстовая версия | Сейчас: 27.12.2024, 2:52 |