Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
1 / 1 / 0
Регистрация: 15.02.2017
Сообщений: 94
1

Проверка учетных записей, некорректный вывод в консоли

26.12.2018, 07:23. Просмотров 443. Ответов 11


Программа выводит список пользователей, информацию о группах, проверяет устарели ли пароли, все работает конечно, но как убрать лишние символы? Код программы в спойлере.
Проверка учетных записей, некорректный вывод в консоли

Кликните здесь для просмотра всего текста
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#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;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2018, 07:23
Ответы с готовыми решениями:

Проверка учётных записей
Программа проверяет следующие параметры в соответствии со списком.  Для всех ли...

Проверка учетных записей
Есть код с простой регистрацией. Как сделать, чтобы при повторной регистрации логин и пароль,...

Некорректный ввод/вывод в консоли
Код: puts(&quot;Введите данные для поиска:&quot;); printf(&quot;Телефон : &quot;); gets(foundRec.phone);...

Некорректный вывод массива в консоли
Добрый вечер. Пишу программу для перевода jpg файла в массив. Использую Intel Jpeg library 1.5. ...

11
Эксперт .NET
8655 / 6117 / 1019
Регистрация: 21.01.2016
Сообщений: 23,100
26.12.2018, 07:42 2
Elfman99, причём тут C#?
0
1 / 1 / 0
Регистрация: 15.02.2017
Сообщений: 94
26.12.2018, 07:44  [ТС] 3
В смысле, где тут шарп?
0
Эксперт .NET
8655 / 6117 / 1019
Регистрация: 21.01.2016
Сообщений: 23,100
26.12.2018, 08:06 4
Elfman99, вы вопрос по С++ в ветке C# задали)
0
1 / 1 / 0
Регистрация: 15.02.2017
Сообщений: 94
26.12.2018, 08:07  [ТС] 5
Упс)
0
1354 / 992 / 314
Регистрация: 28.07.2012
Сообщений: 2,750
26.12.2018, 08:41 6
Цитата Сообщение от Elfman99 Посмотреть сообщение
size_t wcstombs((buffer, user_list[i].usri0_name, 20))
Это какая-то фигня, а не вызов функции.
0
1 / 1 / 0
Регистрация: 15.02.2017
Сообщений: 94
26.12.2018, 09:03  [ТС] 7
Хм, а как по-другому пкреписать? В учебнике вроде так было, не помню уже
0
1354 / 992 / 314
Регистрация: 28.07.2012
Сообщений: 2,750
26.12.2018, 09:45 8
Цитата Сообщение от Elfman99 Посмотреть сообщение
Хм, а как по-другому пкреписать?
C++
1
wcstombs(buffer, user_list[i].usri0_name, 20);
Добавлено через 1 минуту
Elfman99, в твоем случае было создание переменной wcstombs типа size_t со значением 20.
0
1 / 1 / 0
Регистрация: 15.02.2017
Сообщений: 94
26.12.2018, 11:39  [ТС] 9
Ее нужно объявлять или что? Ругается с ошибкой error C4996: 'wcstombs': Эта функция или переменная может быть небезопасной. Рассмотрите возможность использования

Добавлено через 12 минут
Что-то не доходит до меня.
0
1354 / 992 / 314
Регистрация: 28.07.2012
Сообщений: 2,750
26.12.2018, 14:04 10
Цитата Сообщение от Elfman99 Посмотреть сообщение
Рассмотрите возможность использования
Ну, рассмотри возможность использования функции, которая указана далее в тексте ошибки wcstombs_s. Или отключи вывод этих ошибок, указав опцию, которая также указана в тексте ошибки.

Скорее всего достаточно вставить #define _CRT_SECURE_NO_WARNINGS в начало pch.h или добавить эту опцию в свойствах проекта.
0
1 / 1 / 0
Регистрация: 15.02.2017
Сообщений: 94
27.12.2018, 07:13  [ТС] 11
Ну, рассмотри возможность использования функции, которая указана далее в тексте ошибки wcstombs_s. Или отключи вывод этих ошибок, указав опцию, которая также указана в тексте ошибки.

Скорее всего достаточно вставить
Код
#define _CRT_SECURE_NO_WARNINGS
в начало
Код
pch.h
или добавить эту опцию в свойствах проекта.
Дичь какая-то происходит. Не воспринимает макрос и не принимает 3 аргумента, если на
Код
wcstombs_s
заменить
Проверка учетных записей, некорректный вывод в консоли
0
1354 / 992 / 314
Регистрация: 28.07.2012
Сообщений: 2,750
27.12.2018, 16:00 12
Цитата Сообщение от Elfman99 Посмотреть сообщение
не принимает 3 аргумента
Очевидно, что у этой функции другое количество аргументов.

Цитата Сообщение от Elfman99 Посмотреть сообщение
Не воспринимает макрос
Ну, впихни его тогда в свойства проекта: Configuration Properties - C/C++ - Preprocessor - Preprocessor Definitions
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2018, 16:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Проверка нескольких записей, соответствующих одному условию. Вывод нессоттветствующих записей в MsgBox.
День добрый. Мои знания в программировании растут очень вяло, но по традиции я пытаюсь задавать...

Вывод записей и проверка
Имеется БД, которая подключается к проекту(тестировщик знаний учащихся). При нажатии на кнопку...

Контроль учетных записей
Подскажите, как отключить контроь учетных записей?

с контролем учетных записей на 8-ке
Вообщем скачал и активировал 8-ке.Хочу зайти в магазин пишет что отключен контроль учетных записей,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.