Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 25.02.2007
Сообщений: 37
1

Вопрос по реализации буфера

18.08.2008, 13:45. Показов 1550. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Я все продолжаю свои мытарства в текстовым редактором и добрался вот до самого вкусного - как реализовать буфер и работу с ним. Но до работы еще далеко, пока пытаюсь заставить его работать.
Сейчас я пробую сделать его в виде массива типа vector. Сначала была идея сделать что-то типа vector<vector <char>>, но я не смог разобраться, каким образом изменять размер внутреннего вектора, и получился облом.
Вследствии этого возникает вопрос - либо как это сделать, либо может есть стандартный двумерный массив, в котором можно изменять размеры всех массивов?
Ну или просто посоветуйте, куда копать, а то я как-то растерялся
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.08.2008, 13:45
Ответы с готовыми решениями:

вопрос по реализации на C++
Условие: собственно сам вопрос: каким образом записать информацию о двух сотрудниках в одной...

вопрос по реализации ассоциативного контейнера
здравствуйте. есть задание по курсовой: Реализовать класс ассоциативного контейнера, хранящий пары...

Отделение интерфейса от реализации класса: компиляция кода реализации
Доброго времени суток, У меня возникла проблема с отделением интерфейса от реализации класса....

Вопрос по способу реализации
Вопрос по способу реализации на VS C# 2008. Значит задумка такая у меня. из файла формата .csv,...

5
10 / 3 / 7
Регистрация: 25.03.2008
Сообщений: 50
20.08.2008, 16:16 2
Изложи подробно суть проблемы, в особенности поясни зачем понадобился именно двумерный буфер.

Не до конца понял суть проблемы, но если нужен двумерный массив с переменными размерами могу посоветовать следующую структуру:
C++
1
2
3
4
5
6
struct buff
{
size_t size; //размер внутреннего буфера
void* body; //тело внутреннего буфера
Type type; //enum по которому идентифицируешь тип данных в body
};
а дальше
C++
1
std::vector<buff> buffer;
0
296 / 56 / 5
Регистрация: 22.05.2008
Сообщений: 788
20.08.2008, 18:26 3
я так понял надо стандартное меню, типа Copy, Past и тд?
0
0 / 0 / 0
Регистрация: 25.02.2007
Сообщений: 37
20.08.2008, 18:40  [ТС] 4
пишу я консольный текстовый редактор. И понадобился двумерный массив для того, что бы редактировать файл, т.е. загнал данные в массив, в массиве их обработал, потом перезаписал в файл.
Переменные размеры нужны для того, что бы не транжирить память, потому как сделать двумерный массив фиксированной длины - ну совершенно не проблема, как и организовать построчную запись в него данных из файла (в настоящий момент оно так и есть, массив типа char)
по пути кстати возникли еще какие-то неясные проблемы с winuser.h
попробовал сделать тестовый вариант функции, котороя будет отвечать за обработку нажатых пользователем клавиш при редактировании содержимого файла.
код самой функции такой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void test_func()
    {
        if(WM_KEYDOWN)
        {
            switch (wParam):
                case VK_LEFT:
                    {
                        cout << "Left arrow";
                        break;
                    }
                case VK_RIGHT:
                    {
                        cout << "Left arrow";
                        break;
                    }
                case VK_UP:
                    {
                        cout << "Up arrow";
                        break;
                    }
                case  VK_DOWN:
                    {
                        cout << "Down arrow";
                        break;
                    }
        }
    }
при поптыке компиляции выдает 13 ошибок, приводит их не буду что бы не загромождать, но все - только на winuser.h
как-то мне боязно его править, если честно )
0
296 / 56 / 5
Регистрация: 22.05.2008
Сообщений: 788
20.08.2008, 19:21 5
и все таки приведите ошибки, просто юзайте тег CODE
0
0 / 0 / 0
Регистрация: 25.02.2007
Сообщений: 37
21.08.2008, 16:12  [ТС] 6
ошибки следующие:
Код
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(42) : error C2146: syntax error : missing ';' before identifier 'HDWP'
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(42) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(42) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(43) : error C2146: syntax error : missing ';' before identifier 'MENUTEMPLATEA'
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(43) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(43) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(50) : error C2146: syntax error : missing ';' before identifier 'LPMENUTEMPLATEA'
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(50) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(50) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(58) : error C2065: 'CALLBACK' : undeclared identifier
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(58) : error C2065: 'WNDPROC' : undeclared identifier
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(58) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(58) : fatal error C1903: unable to recover from previous error(s); stopping compilation
0
21.08.2008, 16:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.08.2008, 16:12
Помогаю со студенческими работами здесь

Текстурирование 2D полигона: вопрос реализации
Всем доброго времени суток, я довольно много работал с 2D графикой, но в основном со спрайтами. Я...

RTX вопрос по реализации задержек
Раньше использовал для задержек в задачах функцию os_itv_set - интервал запуска задачи. Сейчас за...

Вопрос по реализации вывода ошибок
Здравствуйте. Подскажите как реализовывать обработку ошибок. Например, неправильный аргумент для...

Пористая заготовка: вопрос реализации
Народ, помогииииииииииииите! Нужно очень-очень срочно сделать программку. Я не знаю с какого бока...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru