Здравствуйте, Adriano, Вы писали:
A>просто читаю файл:
A>A>template<class ValueT>
A>void simple_reading(const char* fileName)
A>{
A> basic_ifstream<ValueT> in;
A> in.open(fileName,ios::binary);
A> if ( !in ){
A> return;
A> }
A> basic_string<ValueT> buffer;
A> buffer.resize(1024*1024*100);
A> {
A> size_t offset = 0;
A> while( !in.eof() ){
A> in.read(&buffer[0],static_cast<streamsize>( buffer.size() & 0xFFFFFFFF ) ); //правильно я делаю преобразование?
A> offset += in.gcount();
A> cout << "\roffset = " << offset;
A> }
A> cout << endl;
A> }
A> return;
A>}
A>int _tmain(int argc, _TCHAR* argv[])
A>{
A> if ( argc < 2 ){
A> return 1;
A> }
A> simple_reading<char>(argv[1]);
A> simple_reading<unsigned char>(argv[1]);
A> return 0;
A>}
A>
A>Почему в случае с char файл считывается полностью, а в случае с unsigned char где-то после 7гб чтение прекращается, т.к. выставляется флаг eof?
A>размер файла ~12гб
по моему по умолчанию char считается unsigned
поэтому вроде не должно быть разницы