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

Хранение данных пользователя и работа с ними - C++

Восстановить пароль Регистрация
 
developerLife
0 / 0 / 0
Регистрация: 26.06.2016
Сообщений: 13
26.06.2016, 16:44     Хранение данных пользователя и работа с ними #1
Здравствуйте.
Есть игровой сервер. При входе на сервер игроку автоматически выдается ID игрока (0-1000) и происходит запрос к БД и загружаются данные, такие как NAME, PASSWORD и т.д.. Следовательно, нужно их хранить пока игрок онлайн.
Полазив в интернете узнал о классах (class), но не понял как с ними работать
А именно, как туда заносить данные и позже считывать. При считывании данных любого игрока нужно использовать ид игрока, выданный при входе, например:
C++
1
Player[playerid /* playerid - ид игрока, выданный при входе */].getIP();
Добавлено через 6 минут
После создания темы еще узнал о конструкторах/деструкторах.
От части понял к с ними обращаться, но не понял как заносить/обновлять данные для определенного игрока по его иду.
Цитата Сообщение от developerLife Посмотреть сообщение
При считывании данных любого игрока нужно использовать ид игрока, выданный при входе, например:
C++
1
Player[playerid /* playerid - ид игрока, выданный при входе */].getIP();
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class dannie
{
private:
    char name[22];
    char password[16];
    char ip[16];
 
public:
    dannie()
    {
        // Игрок зашел, ему выдало ИД, как теперь занести данные...
        // в "ячейку" под номером его ИДа?
        // ip = ...
    }
    void getIP()
    {
        // <код, который будет возвращать IP игрока при нужде>
        // Player[playerid].getIP();
    }
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2016, 16:44     Хранение данных пользователя и работа с ними
Посмотрите здесь:

Файлы, работа с ними (ч.1) C++
C++ Файлы, работа с ними (ч.2)
C++ Файлы и работа с ними
Чтение данных из файла и работа с ними C++
Хранение данных C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4315 / 3736 / 1260
Регистрация: 14.04.2014
Сообщений: 14,642
26.06.2016, 16:47     Хранение данных пользователя и работа с ними #2
Сетевой обмен ты смог сделать, а про классы не знаешь?
Для чего тебе класс в данном случае? Структуры не хватит?
developerLife
0 / 0 / 0
Регистрация: 26.06.2016
Сообщений: 13
26.06.2016, 16:51  [ТС]     Хранение данных пользователя и работа с ними #3
Цитата Сообщение от nmcf Посмотреть сообщение
Для чего тебе класс в данном случае? Структуры не хватит?
Разве есть существенная разница, что использовать?
nmcf
4315 / 3736 / 1260
Регистрация: 14.04.2014
Сообщений: 14,642
26.06.2016, 16:52     Хранение данных пользователя и работа с ними #4
Есть. У структуры прямой доступ, get/set не нужны. И без конструкторов можно обойтись.
_Ivana
2189 / 1394 / 124
Регистрация: 01.03.2013
Сообщений: 4,151
Записей в блоге: 2
26.06.2016, 17:04     Хранение данных пользователя и работа с ними #5
developerLife, забудь про классы, деструкторы, Маркса, Энгельса и т.п. Если у тебя безклассовое общество программа, то и не лезь в это ООП (точнее, его вульгарное понимание, реализованное в С++). Тебе надо по ключу хранить структуры - нужен контейнер соответствие ключ-значение. У тебя ключ интовый (0-1000) - тебе будет достаточно массива указателей на структуры, хранящие значения.
nmcf
4315 / 3736 / 1260
Регистрация: 14.04.2014
Сообщений: 14,642
26.06.2016, 17:16     Хранение данных пользователя и работа с ними #6

Не по теме:

Цитата Сообщение от _Ivana Посмотреть сообщение
точнее, его вульгарное понимание, реализованное в С++
А где оно не вульгарное?


Цитата Сообщение от _Ivana Посмотреть сообщение
нужен контейнер соответствие ключ-значение. У тебя ключ интовый (0-1000) - тебе будет достаточно массива указателей на структуры, хранящие значения.
Тогда std::map.
developerLife
0 / 0 / 0
Регистрация: 26.06.2016
Сообщений: 13
26.06.2016, 17:17  [ТС]     Хранение данных пользователя и работа с ними #7
Цитата Сообщение от nmcf Посмотреть сообщение
Есть. У структуры прямой доступ, get/set не нужны. И без конструкторов можно обойтись.
Цитата Сообщение от _Ivana Посмотреть сообщение
developerLife, забудь про классы, деструкторы, Маркса, Энгельса и т.п. Если у тебя безклассовое общество программа, то и не лезь в это ООП (точнее, его вульгарное понимание, реализованное в С++). Тебе надо по ключу хранить структуры - нужен контейнер соответствие ключ-значение. У тебя ключ интовый (0-1000) - тебе будет достаточно массива указателей на структуры, хранящие значения.
Спасибо за советы. Буду использовать так, если конечно сработает
C++
1
2
3
4
5
6
struct PlayerInfo {
    string name;
    string password;
    int level;
};
PlayerInfo players[MAX_PLAYERS]; // #define MAX_PLAYERS (1000)
_Ivana
2189 / 1394 / 124
Регистрация: 01.03.2013
Сообщений: 4,151
Записей в блоге: 2
26.06.2016, 17:20     Хранение данных пользователя и работа с ними #8
Цитата Сообщение от nmcf Посмотреть сообщение
Тогда std::map.
Про то и речь. И эта мапа будет работать БД-ой. Но если не жаль немножко памяти (1000 и 1 ночь указатель), то можно и массивом.

Не по теме:

Цитата Сообщение от nmcf Посмотреть сообщение
А где оно не вульгарное?
В Smalltalk, Erlang и может где-то еще. В Lisp возможно.



Добавлено через 51 секунду
Цитата Сообщение от developerLife Посмотреть сообщение
Буду использовать так
Ну вот оно и есть, и без классовой борьбы
nmcf
4315 / 3736 / 1260
Регистрация: 14.04.2014
Сообщений: 14,642
26.06.2016, 17:23     Хранение данных пользователя и работа с ними #9
Цитата Сообщение от _Ivana Посмотреть сообщение
то можно и массивом.
Массив не умеет расширяться и прочее. Нужно в сторону STL смотреть, если преобразовывать массивы не самоцель.

Не по теме:

Цитата Сообщение от _Ivana Посмотреть сообщение
В Smalltalk
Ты шутишь? Это пародия на язык, которую нам даже преподавали в ВУЗе - пустая трата времени.

_Ivana
2189 / 1394 / 124
Регистрация: 01.03.2013
Сообщений: 4,151
Записей в блоге: 2
26.06.2016, 17:26     Хранение данных пользователя и работа с ними #10
Цитата Сообщение от nmcf Посмотреть сообщение
Массив не умеет расширяться и прочее.
А ему не надо расширяться - по условию 1000 и одна ночь и не более. А это не так много.

Не по теме:

Цитата Сообщение от nmcf Посмотреть сообщение
Ты шутишь? Это пародия на язык, которую нам даже преподавали в ВУЗе - пустая трата времени.
Я то как раз не шучу. Но я нормально воспринимаю, когда мои заблуждения отличаются от таковых у собеседника, однако это не повод менять свои.

ЗЫ везет некоторым - им в ВУЗе много чего интересного преподают...

nmcf
26.06.2016, 18:11
  #11

Не по теме:

Цитата Сообщение от _Ivana Посмотреть сообщение
ЗЫ везет некоторым - им в ВУЗе много чего интересного преподают...
А в вашем что преподают?

_Ivana
26.06.2016, 18:15
  #12

Не по теме:

Цитата Сообщение от nmcf Посмотреть сообщение
А в вашем что преподают?
А в нашем в 91 году преподавали физику, другую физику, третью физику, математику, другую математику и т.д. Ну и немного VAX Pascal с ассемблером. Сейчас по слухам С++ преподают А до интересных языков наверное никогда не дойдут.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2016, 23:23     Хранение данных пользователя и работа с ними
Еще ссылки по теме:

Хранение данных C++
Киносеанс - хранение данных, замена данных, добавленных новых C++
C++ Массивы и работа с ними

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

Или воспользуйтесь поиском по форуму:
developerLife
0 / 0 / 0
Регистрация: 26.06.2016
Сообщений: 13
26.06.2016, 23:23  [ТС]     Хранение данных пользователя и работа с ними #13
Всем спасибо за помощь!
Решение задачи намного проще чем я мог ожидать.
Yandex
Объявления
26.06.2016, 23:23     Хранение данных пользователя и работа с ними
Ответ Создать тему
Опции темы

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