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

Прототип функции reload_buff() - C++

Восстановить пароль Регистрация
 
FireNovel
 Аватар для FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
29.07.2010, 14:12     Прототип функции reload_buff() #1
Приветствую Вас Господа

Посоветуйте, пожалуйста, как удобнее сделать заголовок функции, которая должна:
из файла прочитать(забить в массив) порцию символов
(тут как раз и вопросец, как удобнее всего "сказать" функции, что нужно прочитать следующую или предыдущую порцию )

При вызове функции известны такие данные:
C++
1
2
3
4
5
sise_t file_size; /* количество символов в файле (заведомо больше buff_size) */
sise_t buff_size;  /* размер буфера */
sise_t cur_pos;   /* счетчик (изм. от 1 до file_size) он подходит к величине buff_size
                           то слева то справа и, соответственно нужно будет загрузить
                           или следующую или предыдущую порцию символов*/
Думал как-то так:
C++
1
2
enum Marker {NEXT, PREV};
char * reload_buff( Marker mark );
Но с перечислением связываться не хочу

Может кто-то делал подобную ф-цию мнебы просто взглянуть

Не по теме:

Не пинайте меня, может в процессе обсуждения поста ко мне прийдей хорошая мысль

Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2010, 14:12     Прототип функции reload_buff()
Посмотрите здесь:

C++ Прототип функции
C++ прототип функции
Прототип функции C++
C++ Прототип функции С++
Прототип функции C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
29.07.2010, 14:24     Прототип функции reload_buff() #2
Цитата Сообщение от FireNovel Посмотреть сообщение
Посоветуйте, пожалуйста, как удобнее сделать заголовок функции
декларацию?
D@rkD@iver
110 / 110 / 3
Регистрация: 01.10.2008
Сообщений: 876
29.07.2010, 14:25     Прототип функции reload_buff() #3
FireNovel, сохраняй адрес пордковый номер текущей порцией
а потом пользуйся fseek
FireNovel
 Аватар для FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
29.07.2010, 14:43  [ТС]     Прототип функции reload_buff() #4
Мне бы с прототипом помочь, саму функцию я напишу сам...
Основная проблема с тем как удобнее ее вызвать, что передать ей в качестве параметров

Либо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
char * reload_buff( int  );
...
//При вызове 
reload_buff( /*тут какая-то формулка типа*/  buff_size - cur_pos);
... 
// А в теле функции 
char * reload_buff( int  flag )
{
if (flag > 0 )
// то читать далее
else 
// читать ранее
}

Не по теме:

На языке вертится не могу сформулировать

D@rkD@iver
110 / 110 / 3
Регистрация: 01.10.2008
Сообщений: 876
29.07.2010, 14:45     Прототип функции reload_buff() #5
FireNovel,
C++
1
void reload_buff(void* buff, int blocksize, int blocknum, FILE* f)
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
29.07.2010, 14:55     Прототип функции reload_buff() #6
D@rkD@iver, А для каких целей buff - пустой указатель? оО
FireNovel
 Аватар для FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
29.07.2010, 14:58  [ТС]     Прототип функции reload_buff() #7
Цитата Сообщение от Lavroff Посмотреть сообщение
D@rkD@iver, А для каких целей buff - пустой указатель? оО
void можно привести к любому типу
D@rkD@iver
110 / 110 / 3
Регистрация: 01.10.2008
Сообщений: 876
29.07.2010, 15:08     Прототип функции reload_buff() #8
Lavroff, ну это просто универсальный указатель
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2010, 03:13     Прототип функции reload_buff()
Еще ссылки по теме:

Прототип функции C++
прототип функции C++
C++ Прототип функции

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

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.07.2010, 03:13     Прототип функции reload_buff() #9
Цитата Сообщение от FireNovel
что нужно прочитать следующую или предыдущую порцию
C
1
int reload_buff(char *buf, size_t maxbuf, int backflag, FILE *fp);
а внутри
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    int retval;
    size_t n;
 
    if (backflag) {
        retval = fseek(... back ...);
        if (retval != 0)
            return -1;
    }
 
    n = fread(buf, 1, maxbuf, fp);
 
    if (n != maxbuf)
        return -2;
 
    return 0;
Yandex
Объявления
30.07.2010, 03:13     Прототип функции reload_buff()
Ответ Создать тему
Опции темы

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