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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.83
Molotoff
1 / 1 / 0
Регистрация: 21.07.2009
Сообщений: 50
#1

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

15.09.2009, 10:44. Просмотров 3069. Ответов 23
Метки нет (Все метки)

Доброго всем дня!
Опишу свою проблему - есть файл с библиотекой данных (размером аж 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++
Добрый день) Прошу помощи по поводу чтения файла. По сути: к примеру есть файл txt и в нем данные. Вопрос: как вывести эти данные на...

Чтение из файла - C++
FILE *fp; char gf, a1, a2, a3; int a, i, j, k; fp = fopen (&quot;database.txt&quot;, &quot;r&quot;); do { fscanf (fp, &quot;% %* % %* %s&quot;, a1,...

Чтение из файла - C++
Доброго времени суток! Предстоит такая задача, дан файл, в котором записана дата и курс валюты (через пробел) в следующем виде: ...

Чтение из файла - C++
здравствуйте господа форумчане. у меня на мой взгляд глупый вопрос, но уж так сложилось что тямы на него самому ответить не хватает. ...

Чтение файла - C++
Помогите пожалуйста. Не пойму в чем дело. Проблема в указателе pnt. Постоянно возвращает NULL. Думаю проблема в этой строке: pnt =...

чтение из файла - C++
нужно скопировать файл как с начало до конца, так и с конца в начало (то есть в обратном порядке). с первой частью никаких проблем не...

Чтение из файла - C++
У.у..у.. чёрт побери...что - то я запарился на эти сишные функции мануалы читать.....всё забыл... Может кто напомнит строчку кода, как...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
15.09.2009, 18:02     Чтение из файла #16
Цитата Сообщение от АНК Посмотреть сообщение
C++
1
ifstream ( const char * filename, ios_base::openmode mode = ios_base::in );
файл открывается по умолчанию только на чтение.
а теперь читаем внимательнее
Цитата Сообщение от M128K145 Посмотреть сообщение
Он просто однонаправленный и хоть по умолчанию, хоть нет, он всегда будет только для чтения.
Он не по умолчанию открывается на чтение, он всегда открывается только для чтения
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
15.09.2009, 18:03     Чтение из файла #17
Цитата Сообщение от АНК Посмотреть сообщение
Нет там openmode mode=ios_base::binary
C++
1
2
3
4
5
explicit basic_fstream(
    const char *_Filename,
    ios_base::openmode _Mode = ios_base::in | ios_base::out,
    int _Prot = (int)ios_base::_Openprot
);
АНК
124 / 115 / 2
Регистрация: 27.02.2007
Сообщений: 291
15.09.2009, 18:21     Чтение из файла #18
zim22, Это все прекрасно. Смотрим тут
C++
1
2
3
basic_fstream();
explicit basic_fstream  ( const char * filename, 
   ios_base::openmode mode = ios_base::in | ios_base::out);
Добавлено через 8 минут
Цитата Сообщение от M128K145 Посмотреть сообщение
Он не по умолчанию открывается на чтение, он всегда открывается только для чтения
А если открыть файл с явно указанным openmode mode? На пример:
C++
1
ifstream (filename, ios_base::out );
Что произойдет по Вашему?
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
15.09.2009, 18:48     Чтение из файла #19
АНК, приведи мне пример такой реализации
C++
1
ifstream ifs(filename, ios_base::out);
для записи в файл или
C++
1
ofstream ofs(filename, ios_base::in);
для чтения из файла. Если ты напишеш это, я извинюсь и скажу, что был не прав
АНК
124 / 115 / 2
Регистрация: 27.02.2007
Сообщений: 291
15.09.2009, 19:57     Чтение из файла #20
Цитата Сообщение от M128K145 Посмотреть сообщение
АНК, приведи мне пример такой реализации
Пожалуйста, только сейчас проверял
C++
1
2
3
4
5
6
7
8
9
10
11
12
  char bf[600] = {0};
  ifstream *filestr = new ifstream("asd.txt", ios_base::out|ios_base::binary);
  try {
    filestr->read(bf, 550);
    bf[0] = 0;
    filestr->seekg(0, ios::beg);
    ((ofstream*)filestr)->write(bf, 10);
  }
  __finally {
    filestr->close();
    delete filestr;
  }
Но это, естественно, извращение, так что извиняться не надо. Просто принципиально такая возможность есть...

Добавлено через 24 минуты
zim22, эксперимент показал, что
C++
1
fstream *filestr = new fstream("asd.txt");
открывает файл в режиме "текст"
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
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
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
15.09.2009, 21:02     Чтение из файла #23
АНК, то-то же. Вот о чем я тебе и пытался тогда сказать! Невозможно ифстримом записать(как и остримом считать) что-либо в файл. В чем ты собственно и убедился на практике
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2013, 22:10     Чтение из файла
Еще ссылки по теме:

чтение из файла - C++
Задача состоит в том,чтобы считать данные из файла,который содержит только целые числа со знаком,записать их в массив и вывести в консоль. ...

Чтение из файла - C++
Здравствуйте, прошу помощи... Я только начала изучение, поэтому еще слишком плохо разбираюсь даже в элементарных вещах, прошу не судить...

чтение из файла - C++
Помогите переделать этот код C++ на Паскаль /*wwod dannuh iz faila*/ FILE *fp; fp=fopen(&quot;NachDann.txt&quot;,&quot;r&quot;); ...

Чтение из файла - C++
Помогите разобраться! Вопрос такой - как читать файл. Я новичок в программировании, прошу сильно не бить. Вот что надумал: #include...

Чтение из файла - C++
Из текстового фала например а.txt надо записать данные в заданную структуру при этом должно получиться так: a.txt a b c 1 1 2 3 4 ...


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

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
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     Чтение из файла
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru