Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ifstream 
V
    Опции темы
User008
Дата 28.1.2010, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 9.9.2009

Репутация: нет
Всего: 1



Есть объект ifstream для файла 16 байт. Но метод read() работает не так как я ожидал, а после первого get() сразу возвращается eof(), мне казалось, что это должно быть после четвёртого get(). В чём причина?
PM MAIL   Вверх
comcon1
Дата 28.1.2010, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: нет
Всего: 17



Почему четвертого? 16 бит, может? У вас не UTF, часом? Какой компилятор? Можно увидеть код? Можно увидеть HEX файла?

Это сообщение отредактировал(а) comcon1 - 28.1.2010, 08:32


--------------------
PM MAIL   Вверх
andrew_121
Дата 28.1.2010, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



User008, возможно в файле бинарные данные, а файл открыт для чтения текстовых.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
User008
Дата 28.1.2010, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 9.9.2009

Репутация: нет
Всего: 1



Код

    std::ifstream fin(file, std::ios::binary);

    if (!fin)
    {
        //...
    }

    fin.get();
    bool eof = fin.eof();


Добавлено через 6 минут и 7 секунд
01 00 00 00  04 00 00 00  08 00 00 00  09 00 00 00
PM MAIL   Вверх
andrew_121
Дата 28.1.2010, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(User008 @ 28.1.2010,  13:23)
Код

    std::ifstream fin(file, std::ios::binary);

    if (!fin)
    {
        //...
    }

    fin.get();
    bool eof = fin.eof();


Добавлено @ 13:29
01 00 00 00  04 00 00 00  08 00 00 00  09 00 00 00

что ты этим хотел сказать?


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
User008
Дата 28.1.2010, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 9.9.2009

Репутация: нет
Всего: 1



Цитата(andrew_121 @  28.1.2010,  13:33 Найти цитируемый пост)
что ты этим хотел сказать?

Цитата(comcon1 @  28.1.2010,  08:31 Найти цитируемый пост)
Можно увидеть код? Можно увидеть HEX файла?


PM MAIL   Вверх
andrew_121
Дата 28.1.2010, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(User008 @ 28.1.2010,  13:43)
Цитата(andrew_121 @  28.1.2010,  13:33 Найти цитируемый пост)
что ты этим хотел сказать?

Цитата(comcon1 @  28.1.2010,  08:31 Найти цитируемый пост)
Можно увидеть код? Можно увидеть HEX файла?

ты можешь внятно ответить?
исходя из кода и хекс дампа, вижу что все правильно.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
bsa
Дата 28.1.2010, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



User008, сразу после открытия файла проверяй его через is_open().
PM   Вверх
User008
Дата 28.1.2010, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 9.9.2009

Репутация: нет
Всего: 1



Цитата(bsa @  28.1.2010,  14:25 Найти цитируемый пост)
User008, сразу после открытия файла проверяй его через is_open().

а такая запись не является альтернативой is_open()?
Код

    if (!fin)
    {
        //...
    }

PM MAIL   Вверх
bsa
Дата 28.1.2010, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



User008, а ты проверь.
PM   Вверх
User008
Дата 29.1.2010, 02:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 9.9.2009

Репутация: нет
Всего: 1



Да, действительно, понял где ошибка, спасибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1364 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.