Битовые операции. Разбор xml файла С++

199
30 января 2019, 21:00

Подскажите, есть файл вида: test.xml

<?xml version="1.0" encoding="UTF-8"?>
<authorization>
    <user name="user1"  login="login1" password="password1">
        <role type="rerrer"/>
        <role type="engineer"/> 
    </user>
    <user name="user2"  login="login2" password="password2" role="operator" />
    <user name="user3"  login="login3" password="password3" role="engineer" />
    <user name="user4"  login="login4" password="password4" role="installer" />
</authorization>

Делаю разбор этого файла с помощью библиотеки tinyxml2. Создаю структуру.

CAuthorizationData.h

#ifndef CAUTHORIZATIONDATA_H
#define CAUTHORIZATIONDATA_H
#include <string>
#include <vector>
namespace Authorization
{
 struct CAuthorizationData 
 {
    struct CUserData
    {
        std::string _name;
        std::string _login;
        std::string _password;
        enum class RolesType
        {
            _none,
            _viewer,
            _operator,
            _engineer,
            _installer
        };
        std::vector<RolesType> _roles;
    };
    std::vector<CUserData> _users;
 };
}
#endif // CSETTINGSDATA_H

main.cpp

#include <iostream>
#include "tinyxml2.h"
#include "CAuthorization.h"
using namespace std;
using namespace tinyxml2;
using namespace Authorization;
int main(int argc, char *argv[])
{
    CAuthorization userInfo;    
    if (userInfo.Load ("impr1_auth.xml"))
    {
    for (const auto &User: userInfo.Data()._users)
    {
        cout << "Name: " << User._name << endl;
        cout << "Login: " << User._login << endl;
        cout << "Password: " << User._password << endl << endl;     
    }
    }
    return 0;
}

Подскажите, как вывести роли на экран, если есть такое условие

 // - бит 0=1 - viewer
        // - бит 1=1 - operator
        // - бит 2=1 - engineer
        // - бит 3=1 - installer

#define VIEWER 0x01
#define OPERATOR 0x02
#define ENGINEER 0x04
#define INSTALLER 0x08
READ ALSO
Вывод количества букв в строке

Вывод количества букв в строке

Можно ли при помощи printf подсчитать количество букв в строке? если можно то каким способом или можно это сделать по другому?

191
Считывание нажатия стрелок С++ Linux Ubuntu

Считывание нажатия стрелок С++ Linux Ubuntu

Пишу консольную игру 2048 и столкнулся с проблемой отсутствия стандартных функций С++ считывания нажатий на стелки на клавиатуреgetch() не работает,...

223
компиляторы для qt(и их настройка),windows sdk?,и c++

компиляторы для qt(и их настройка),windows sdk?,и c++

Всего лишь скачать,и посмотреть документацию? Ничоси легко!

202
Сигналы слоты qt

Сигналы слоты qt

Задача состоит в том, что есть два классаВ экземпляре одного из принимаются на вход данные (например чтение из файла) и после обработки передается...

170