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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Frostegater
6 / 6 / 0
Регистрация: 30.08.2011
Сообщений: 47
#1

Чтение файла неизвестного размера - C++

02.04.2012, 11:09. Просмотров 1764. Ответов 11
Метки нет (Все метки)

Необходимо прочитать файл неизвестного размера, динамически растягивая массив, загнать файл в массив и узнать его размер. Приведите пожалуйста пример кода на Си или Си++. Я пробовал играться с realloc'ом, но не выходит. Что-то не так делаю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2012, 11:09     Чтение файла неизвестного размера
Посмотрите здесь:

Из текстового файла неизвестного размера вывести на экран все предложения, не содержащие запятых - C++
Привет, Программисты! :) Нужна ваша помощь... Есть задача по поводу работы со строками: "Из текстового файла неизвестного размера вывести...

Массив неизвестного размера - C++
Хочу написать функцию для нахождения предела последовательности. А и eps вводятся с клавиатуры. Цикл do while - обязательное условие. n...

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

Умножение матрицы неизвестного размера - C++
задание такоэ нужно ввести размерность 2 матриц с клавиатуры а потом их перемножить... но проблема в том что не знаю как записать...

Ввод и вывод строки неизвестного размера - C++
Как ввести и вывести строку неизвестного размера в c++? Нигде просто нормального объяснения не нашел.

Как обьявить массив неизвестного размера? - C++
Помогите разобраться, есть класс, в котором обьявлен двумерный массив структур. Размер массива неизвестен, но должен быть определен во...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
02.04.2012, 12:41     Чтение файла неизвестного размера #2
а если использовать std::vector?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.04.2012, 12:44     Чтение файла неизвестного размера #3
Покажи, как игрался?
Байт
Эксперт C
15830 / 10157 / 1522
Регистрация: 24.12.2010
Сообщений: 19,141
02.04.2012, 12:56     Чтение файла неизвестного размера #4
Цитата Сообщение от Frostegater Посмотреть сообщение
но не выходит
Что именно не выходит? И каков порядок величины файла?
А вообще-то есть функция filelength
Frostegater
6 / 6 / 0
Регистрация: 30.08.2011
Сообщений: 47
02.04.2012, 13:09  [ТС]     Чтение файла неизвестного размера #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
char **buf = NULL;
int i = 0;
char str[512]; 
FILE *fd = fopen(src, "rb");
while(!feof(fd))
{
    fgets(str, 512, fd);
    i++;
    buf = (char **) realloc(buf, sizeof(char *)*i);
    buf[i - 1] = (char *) malloc(strlen(buf) + 1);
    strcpy(buf[i - 1], str);
}
fclose(fd);
используется strlen, на сколько я понимаю он считает до EOF символа а в файле они имеются (ну нули)..
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.04.2012, 13:11     Чтение файла неизвестного размера #6
Цитата Сообщение от Frostegater Посмотреть сообщение
считает до EOF символа а в файле они имеются (ну нули)
EOF != 0
Frostegater
6 / 6 / 0
Регистрация: 30.08.2011
Сообщений: 47
02.04.2012, 13:28  [ТС]     Чтение файла неизвестного размера #7
Цитата Сообщение от Deviaphan Посмотреть сообщение
EOF != 0
хм незнал.. но суть в том, что strlen определяет размер до следующего нуля
Петррр
5946 / 3383 / 336
Регистрация: 28.10.2010
Сообщений: 5,927
02.04.2012, 13:29     Чтение файла неизвестного размера #8
http://www.cyberforum.ru/cpp-beginne...ml#post2240784
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.04.2012, 13:40     Чтение файла неизвестного размера #9
Цитата Сообщение от Frostegater Посмотреть сообщение
хм незнал..
sizeof(EOF) > sizeof(char). В два раза, примерно...
Frostegater
6 / 6 / 0
Регистрация: 30.08.2011
Сообщений: 47
03.04.2012, 10:24  [ТС]     Чтение файла неизвестного размера #10
Цитата Сообщение от Петррр Посмотреть сообщение
там чтение текстового файла (без нулевых байтов), а мне нужно прочитать бинарник и так чтоб загнать в массив.. и последующем работать с ним. Я пробовал делать громадный массив char arr[0xFFFFFF], но вылетает с ошибкой.. в общем, не умею я работать с динамической памятью. Манов начитался уйму. Понял, но сделать не могу. Помогите пжл, но только на маны не шлите, уже тошнит..
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
03.04.2012, 10:45     Чтение файла неизвестного размера #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{
   int oldSize = 100;
   char * array = new char[oldSize];
 
   while(100500)
   {
      int size = oldSize + 25;
      char * newArray = new char[size];
      memcpy( newArray, array,  oldSize );
      delete[] array;
      array = newArray;
      oldSize = size;
   }
}
На каждой итерации цикла, массив будет увеличиваться на 25 элементов и в него будет копироваться данные из старый массив. И так пока память не кончится.
Разбирайся.

Добавлено через 1 минуту
new/delete замени на malloc/free
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2012, 14:19     Чтение файла неизвестного размера
Еще ссылки по теме:

Найти формат неизвестного файла - C++
Задача звучит так: "Для файлов нескольких (не менее 3) широко используемых форматов составить базу данных, содержащую статистические...

Исследование "неизвестного" формата (отрезать начало файла до определённого заголовка) - C++
Здравствуйте! Программированию я учусь собственными силами, о преподаваемом в университетах или на курсах не имею ни малейшего понятия....

Написать программу, многократно выполняющую чтение элементов массива заданного размера - C++
Доброе время суток! Вот у меня такие задачки, помогите решить пожалуйста :help: Первая задачка: Написать программу, многократно...

Определение размера файла - C++
Здравствуйте, я учусь на программиста, нужна помощь в программе. #include <fstream.h> #include <windows.h> #include <iostream> ...

Увеличение размера файла - C++
У меня есть на входе файл. Он открывается только для чтения (содержимое НЕ должно изменяться). Для дальнейшей работы необходимо, чтобы...


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

Или воспользуйтесь поиском по форуму:
Flash_Zero
3 / 3 / 1
Регистрация: 07.03.2012
Сообщений: 5
03.04.2012, 14:19     Чтение файла неизвестного размера #12
Frostegater,

Не по теме:

Кого мы видим

Yandex
Объявления
03.04.2012, 14:19     Чтение файла неизвестного размера
Ответ Создать тему
Опции темы

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