Форум программистов, компьютерный форум CyberForum.ru

Чтение из файла - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.83
Molotoff
1 / 1 / 0
Регистрация: 21.07.2009
Сообщений: 50
15.09.2009, 10:44     Чтение из файла #1
Доброго всем дня!
Опишу свою проблему - есть файл с библиотекой данных (размером аж 142 082 049 байт), в одном байте которой хранится 2 значения от 0 до 9 в определенном порядке (ну это не суть важно). Надо эту библиотеку считать из файла в память, чтобы каждое значение было помещено в массив unsigned short int(потому как значения не превышают 9-ти).
Делаю я это следующим образом:
C++
1
2
3
4
5
6
cout<<"1. Чтение библиотеки функций от 5-ти переменных"<<endl;
ifstream fin1("5v_lib2",ios_base::binary);
unsigned fs1=142082049;
char *lib_main=new char[fs1];
fin1.read(lib_main,fs1);
fin1.close();
т.е. считываю весь файл в массив char, т.е. в одном байте не может быть значений больше двух девяток, что в десятичной системе значит 153, но проверка

C++
1
2
3
4
for (int i=0; i<142082049; i++) {if((unsigned short int) lib_main[i]>160){
    cout << (unsigned short int)lib_main[i] << " " <<  i << endl;
    break;}
}
вылетает на 1258987-итерации со значением 65415, хотя вообще не должна, саму библиотеку смотрел HEX-Редактором - все нормально, больших чисел нет, да и быть не может.
Даже не могу сообразить в какую сторону копать...подскажите, плиз.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2009, 10:44     Чтение из файла
Посмотрите здесь:

Чтение из файла C++
C++ Чтение из файла
C++ Чтение файла
Чтение из файла. Повторное чтение файла C++
Чтение из файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
15.09.2009, 20:32     Чтение из файла #21
АНК, могу согласится, что да, ты записал в файл текст, извини, не учел приведение типов. Но вот повтори это же самое для потока чисто класса ifstream, без приведения к ofstream
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
АНК
124 / 115 / 2
Регистрация: 27.02.2007
Сообщений: 291
15.09.2009, 20:54     Чтение из файла #22
Цитата Сообщение от M128K145 Посмотреть сообщение
для потока чисто класса ifstream, без приведения к ofstream
А не получится ничего. В классе ifstream нет метода write(...). Как и в классе ofstream нет метода read(...).
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
15.09.2009, 21:02     Чтение из файла #23
АНК, то-то же. Вот о чем я тебе и пытался тогда сказать! Невозможно ифстримом записать(как и остримом считать) что-либо в файл. В чем ты собственно и убедился на практике
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2013, 22:10     Чтение из файла
Еще ссылки по теме:

Чтение из Файла C++
Чтение файла C++
Чтение файла с несколькими знаками конца файла C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
28.02.2013, 22:10     Чтение из файла #24
То же что и здесь попроще только:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <fstream>
using namespace std;
 
 
int main () {
    ifstream *filestr = new ifstream("asd.txt", ios_base::out|ios_base::binary);
    char bf_[11] = "kkkkkkkkkk";
    ((ofstream*)filestr)->write(bf_, 10);
    filestr->close();
    delete filestr;
    getchar ();
    return 0;
}
...а вообще это только фокусы показывать разве что.
Yandex
Объявления
28.02.2013, 22:10     Чтение из файла
Ответ Создать тему
Опции темы

Текущее время: 06:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru