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

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

Войти
Регистрация
Восстановить пароль
 
Ang_07
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 47
#1

определения конца файла - C++

28.04.2011, 20:10. Просмотров 1031. Ответов 7
Метки нет (Все метки)

Как определить конец файла если я открываю файл fopen и считываю данные через freed ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int reedFileT(Dek *&ldek,Dek *&rdek)
{
    if(ldek!=0)return 0;
    FILE *f=fopen("myfile.txt","rt");
    Dek *pdek;
    Dek *ndek=new Dek;
    while()//вотсуда надо вставить чтонибуть чтоб при окончании файла оно вышло из цикла.. тоесть пока не конец файла
    {
        if(ldek==0){ldek=ndek; ndek->left=0;}
        fread(&ndek->info,sizeof(Info),1,f);
        pdek=ndek;
        ndek=new Dek;
        ndek->left=pdek;
        pdek->right=ndek;
    }
    fclose(f);
    rdek=ndek;
    rdek->right=0;
    return 1;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2011, 20:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос определения конца файла (C++):

Алгоритм определения конца предложения - C++
Написать программу, определяющую конец предложения в текстах. В алгоритме учесть: смайлики, сокращения, инициалы, прямую речь, а также...

Перебор файла посимвольно, как организовать цикл, работающий до конца файла. - C++
Нужно перебрать файл посимвольно и, учитывая спецсимволы записать содержимое файла в Memo1. Помогите пожалуйста организовать цикл...

Чтение файла с несколькими знаками конца файла - C++
В файле несколько раз встречается ноль, и ни как не получается прочитать его полностью. Как можно решить данную проблему ?

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

Истинность конца файла - C++
Суть в чем. Есть реализация криптосистемы МакЭлисса. В входном текстовом файле считываются символы, символы разбиваются на биты, из...

Считывание до конца файла - C++
В каждой строке файла 2 целых числа. Нужно считать по 2 числа до конца файла и выводить в каждую строку сумму этих двух чисел. Раньше...

7
schdub
2955 / 1300 / 239
Регистрация: 19.01.2009
Сообщений: 3,414
Завершенные тесты: 1
28.04.2011, 21:19 #2
Используйте, например,
feof()
Syntax

#include <stdio.h>
int feof(FILE *stream);

Description

Detects end-of-file on a stream.
feof is a macro that tests the given stream for an end-of-file indicator. Once the indicator is set read operations on the file return the indicator until rewind is called or the file is closed. The end-of-file indicator is reset with each input operation.

Return Value

feof returns nonzero if an end-of-file indicator was detected on the last input operation on the named stream and 0 if end-of-file has not been reached.
, объявленную в stdio.h.

Необходимо отметить, что в Вашей функции утечка памяти (взгляните на работу с переменной ndek). Вся память, которая выделена оператором new должна быть удалена оператором delete.
0
Ang_07
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 47
28.04.2011, 22:02  [ТС] #3
я специально оставляю, у меня список
0
schdub
2955 / 1300 / 239
Регистрация: 19.01.2009
Сообщений: 3,414
Завершенные тесты: 1
28.04.2011, 22:51 #4
Цитата Сообщение от Ang_07 Посмотреть сообщение
у меня список
Понятно. Ну а с feof() все получилось?
0
Ang_07
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 47
28.04.2011, 23:38  [ТС] #5
да получилось, ещё до того как ты ответил... ппц.. тяжко было найти в инете...)
0
kazak
3038 / 2359 / 157
Регистрация: 11.03.2009
Сообщений: 5,405
Завершенные тесты: 1
29.04.2011, 06:41 #6
fread возвращает количество считанных блоков, поэтому ее допустимо, и даже предпочтительно, вызывать прямо в while'е.
0
Ang_07
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 47
29.04.2011, 08:23  [ТС] #7
Кэп чтоле ?))
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
29.04.2011, 08:37 #8
Ang_07, вам дело говорят! Нет бы прислушаться...
C
1
2
3
4
5
6
7
8
9
10
11
typedef struct {
 /* ... */
} mystruct_t;
 
/*... */
FILE * f;
mystruct_t ms;
/* ... */
while ( fread(&ms, sizeof(mystruct_t), 1, f) == 1 ){
  /* do something with ms */
}
а лучше весь файл оптом в массив структур прочитать (предварительно получив размер файла, поделив на размер структуры и создав массив под получившееся количество элементов), ну или блоками, если файл большой очень...
0
29.04.2011, 08:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2011, 08:37
Привет! Вот еще темы с ответами:

Чтение из файла с конца - C++
Добрый день, не могу реализовать такую штуку =) Хотелось бы имеющийся текстовый файл перезаписать с обратном порядке (все символы...

Определение конца файла - C++
помогите пожалуйста определить условие конца файла #include &lt;iostream&gt; #include &lt;cstdio&gt; #include &lt;vector&gt; using namespace std; ...

Условие конца файла - C++
Имеем функцию: void Inpfile (stud&amp; s) { ifstream base(&quot;base.txt&quot;); if(!base)std::cout &lt;&lt; &quot;Can't create input file&quot;; ...

Считывание из файла до конца строки - C++
Нужно написать программу, которая создаёт файл, каждая строка которого содержит буквы и цифры. В каждой строке определить наибольшую...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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