Получить текущее имя пользователя в C++ на Windows
Я пытаюсь создать программу, которая получает имя пользователя в Windows на C++.
Я попытался это:
char *userName = getenv("LOGNAME");
stringstream ss;
string userNameString;
ss << userName;
ss >> userNameString;
cout << "Username: " << userNameString << endl;
ничего не выводится, кроме " Username:".
каков самый простой и лучший способ получить текущее имя пользователя?
5 ответов
в windows используйте имя пользователя переменные среды или GetUserName функции
исправить код, который работал для меня:
TCHAR username[UNLEN + 1];
DWORD size = UNLEN + 1;
GetUserName((TCHAR*)username, &size);
Я использую Visual Studio Express 2012 (в Windows 7), возможно, он работает так же с Dev-Cpp
работает:
#include <iostream>
using namespace std;
#include <windows.h>
#include <Lmcons.h>
int main()
{
TCHAR name [ UNLEN + 1 ];
DWORD size = UNLEN + 1;
if (GetUserName( (TCHAR*)name, &size ))
wcout << L"Hello, " << name << L"!\n";
else
cout << "Hello, unnamed person!\n";
}