Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 26.06.2016
Сообщений: 18

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

26.06.2016, 16:44. Показов 1437. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Есть игровой сервер. При входе на сервер игроку автоматически выдается 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();
    }
};
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.06.2016, 16:44
Ответы с готовыми решениями:

Хранение графических файлов в БД и работа с ними
База данных файл *.sdf. Подключаюсь к нему через SqlCe Базу данных создавал из Visual Studio 2008. Мне надо хранить картинки в БД...

Хранение периодов дат. И работа с ними.
Есть необходимость проверять какой лимит был у абонента в том или ином месяце. В работе должно выглядеть так: анализируя дату на входе...

Хранение контейнеров в классе и работа с ними
Добрый день! Разрабатываю что-то вроде продвинутого паинта. Моя задача: хранение, добавление и удаление слоев, а в дальнейшем и описание...

12
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
26.06.2016, 16:47
Сетевой обмен ты смог сделать, а про классы не знаешь?
Для чего тебе класс в данном случае? Структуры не хватит?
0
0 / 0 / 0
Регистрация: 26.06.2016
Сообщений: 18
26.06.2016, 16:51  [ТС]
Цитата Сообщение от nmcf Посмотреть сообщение
Для чего тебе класс в данном случае? Структуры не хватит?
Разве есть существенная разница, что использовать?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
26.06.2016, 16:52
Есть. У структуры прямой доступ, get/set не нужны. И без конструкторов можно обойтись.
1
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,989
Записей в блоге: 32
26.06.2016, 17:04
developerLife, забудь про классы, деструкторы, Маркса, Энгельса и т.п. Если у тебя безклассовое общество программа, то и не лезь в это ООП (точнее, его вульгарное понимание, реализованное в С++). Тебе надо по ключу хранить структуры - нужен контейнер соответствие ключ-значение. У тебя ключ интовый (0-1000) - тебе будет достаточно массива указателей на структуры, хранящие значения.
1
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
26.06.2016, 17:16

Не по теме:

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


Цитата Сообщение от _Ivana Посмотреть сообщение
нужен контейнер соответствие ключ-значение. У тебя ключ интовый (0-1000) - тебе будет достаточно массива указателей на структуры, хранящие значения.
Тогда std::map.
0
0 / 0 / 0
Регистрация: 26.06.2016
Сообщений: 18
26.06.2016, 17:17  [ТС]
Цитата Сообщение от 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)
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,989
Записей в блоге: 32
26.06.2016, 17:20
Цитата Сообщение от nmcf Посмотреть сообщение
Тогда std::map.
Про то и речь. И эта мапа будет работать БД-ой. Но если не жаль немножко памяти (1000 и 1 ночь указатель), то можно и массивом.

Не по теме:

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



Добавлено через 51 секунду
Цитата Сообщение от developerLife Посмотреть сообщение
Буду использовать так
Ну вот оно и есть, и без классовой борьбы
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
26.06.2016, 17:23
Цитата Сообщение от _Ivana Посмотреть сообщение
то можно и массивом.
Массив не умеет расширяться и прочее. Нужно в сторону STL смотреть, если преобразовывать массивы не самоцель.

Не по теме:

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

0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,989
Записей в блоге: 32
26.06.2016, 17:26
Цитата Сообщение от nmcf Посмотреть сообщение
Массив не умеет расширяться и прочее.
А ему не надо расширяться - по условию 1000 и одна ночь и не более. А это не так много.

Не по теме:

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

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

0
26.06.2016, 18:11

Не по теме:

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

0
26.06.2016, 18:15

Не по теме:

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

0
0 / 0 / 0
Регистрация: 26.06.2016
Сообщений: 18
26.06.2016, 23:23  [ТС]
Всем спасибо за помощь!
Решение задачи намного проще чем я мог ожидать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.06.2016, 23:23
Помогаю со студенческими работами здесь

Хранение в одном поле нескольких дат, и работа с ними
Здравствуйте. Допустим у меня БД библиотеки. И я хочу хранить все данные по книге, когда её брали и когда сдавали. Но я хочу сделать...

Хранение данных пользователя(инф-ию,ограничений,разрешений) в Базе Данных, нужен совет
Здравствуйте, подскажите пожалуйста в какой форме лучше хранить в БД информацию о пользователях, их ограничения и разрешения на...

Хранение данных пользователя
Добрый день. Ест сайт со списком неких элементов. Пользователь должен иметь возможность выбирать какие-либо элементы из этого списка...

Извлечение данных из базы данных и работа с ними
Здравствуйте! я начинающий программист и нужна ваша помощь. мне нужно написать дипломный проект. он заключается в следующем. нужно создать...

Ввод данных и дальнейшая работа с ними
На ввод поступают данные в виде: слово1:слово2 слово3:слово4 слово5:слово6 ... (количество заранее не известно) Дальше...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
SDL3_mixer - это библиотека я для воспроизведения аудио. Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru