Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос по файловым потокам в С++

307
27 декабря 2008 года
Artem_3A
863 / / 11.04.2008
Есть код.
Код:
#include "stdafx.h"
#include <fstream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    ifstream in("111.jpg", ios::in|ios::binary);
    ofstream out("222.jpg", ios::out|ios::binary);
   
        in.seekg(ios::end);
    int iSize = (int)in.tellg();
   
        char* buffer = new char[iSize+1];
   
        in.clear();
    in.read(buffer, iSize);
   
        out.write(buffer, iSize);
   
        out.close();
    in.close();
    delete [] buffer;
   
        return 0;
}

В результате выполнения программы мы получаем выходной файл 222.jpg размеров в 2 байта. Собственно, вся проблема заключается в том, что в результате этого кода мы получаем неверный размер файла.
 
Код:
int iSize = (int)in.tellg();

В чем проблема я понять так и не могу... Может быть что то подскажите?
Аналогичный код, написанный на С, работает не вызывая нареканий.
1
27 декабря 2008 года
kot_
7.3K / / 20.01.2000
Цитата: Artem_3A
Есть код.
 
Код:
in.seekg(ios::end);

В результате выполнения программы мы получаем выходной файл 222.jpg размеров в 2 байта. Собственно, вся проблема заключается в том, что в результате этого кода мы получаем неверный размер файла.
 
Код:
int iSize = (int)in.tellg();

В чем проблема я понять так и не могу... Может быть что то подскажите?
Аналогичный код, написанный на С, работает не вызывая нареканий.


вроде должно быть так

 
Код:
in.seekg(0,ios::end);

т.е. должна или быть задана конкретная позиция в файловом потоке -
например -
 
Код:
in.seekg(1000);

- или позиция относительно начала/конца. Данным кодом мы устанавливаем позицию в конец файла
1
27 декабря 2008 года
kot_
7.3K / / 20.01.2000
Немного более подробно вопрос освещен в моем блоге
307
27 декабря 2008 года
Artem_3A
863 / / 11.04.2008
спс, теперь все работает как часы!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог