Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2018, 07:21   #1
Darius88
Новичок
Джуниор
 
Регистрация: 23.12.2018
Сообщений: 14
Печаль Проверка учетных записей, некорректный вывод текста в консоль

Screenshot_28.png Пробовал
Код:
size_t wcstombs((buffer, user_list[i].usri0_name, 20))
на
Код:
wcstombs(buffer, user_list[i].usri0_name, 20);
либо на wcstombs_s заменить, не принимает аргументы
В текстовом тоже не понятно что происходит Screenshot_30.png

Код:
#include "pch.h"
#include <stdlib.h>
#include <windows.h>
#include <iostream>
#include <lm.h>
#include <clocale>
#include <fstream>
#include <string>
#include <assert.h>
 
#pragma comment (lib, "netapi32.lib")
using namespace std;
 
    
 
int main()
{
    setlocale(LC_CTYPE, "rus");
    
    USER_INFO_0 *user_list;
    DWORD a, b;
    cout << "Список пользователей\n";
    NetUserEnum(NULL, 0, FILTER_NORMAL_ACCOUNT, (LPBYTE*)&user_list, MAX_PREFERRED_LENGTH, &a, &b, NULL);
    std::ofstream out;          // поток для записи
    out.open("E:\\hello.txt");
    std::string line;
    std::ifstream in("D:\\hello.txt");
    for (DWORD i = 0; i < a; ++i)
    {
        char buffer[20];
 
        wprintf(L"User name: %s\n", user_list[i].usri0_name);
        size_t wcstombs((buffer, user_list[i].usri0_name, 20));
        string j = string(buffer);
        cout << j;
        out << user_list[i].usri0_name << std::endl;
        while (getline(in, line))
        {
            std::cout << line << std::endl;
        }
            
    }
    out.close();
    in.close();
    
    cout << "\nИнформация о пользователях\n";
    USER_INFO_2 *uii;
    NET_API_STATUS ret_status; // код возврата из функции 
    for (DWORD i = 0; i < 5; i++)
    {
        ret_status = NetUserGetInfo(NULL, user_list[i].usri0_name, 1, (LPBYTE*)&uii);
        wprintf(L"User name: %s\n", uii->usri2_name);
        wprintf(L"User commemnt: %s\n", uii->usri2_comment);
    }
 
    NetApiBufferFree(uii);
 
    
    cout << "\nСписок групп и информация\n";
        GROUP_USERS_INFO_0 *ui; // информация о группах 
        DWORD entries_read; // количество прочитанных групп 
        DWORD total_entries; // общее количество групп 
        NET_API_STATUS ret_status1; // код возврата из функции 
            for (DWORD i = 0; i < 1; i++)
                {
                    ret_status1 = NetUserGetGroups(NULL, user_list[i].usri0_name, 0, (LPBYTE*)&ui, MAX_PREFERRED_LENGTH, &entries_read, &total_entries);
                        for (DWORD j = 0; j < 5; j++)
                            wprintf(L"%s: %s\n", user_list[j].usri0_name, ui[j].grui0_name);
                }
        NetApiBufferFree(ui); // освобождаем буфер
    NetApiBufferFree(user_list);
    system("pause");
    return 0;
}

Последний раз редактировалось Darius88; 27.12.2018 в 07:24.
Darius88 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка учетных записей(база данных) Darius88 Общие вопросы C/C++ 17 27.12.2018 18:53
Где в реестре хранятся атрибуты учетных записей MAE$TRO Windows 1 04.11.2015 00:11
Получить список админиских учетных записей Windows garuna Общие вопросы Delphi 1 19.09.2015 19:37
Как получить список учетных записей компьютера? garuna Общие вопросы Delphi 0 18.09.2015 13:54
Экспорт учетных записей windows server 2003 ru3000 Безопасность, Шифрование 1 27.07.2009 16:30