C++を使用して、Windowsで現在のユーザーのユーザー名を取得するプログラムを作成しようとしています。
私はこれを試しました:
char *userName = getenv("LOGNAME");
stringstream ss;
string userNameString;
ss << userName;
ss >> userNameString;
cout << "Username: " << userNameString << endl;
「ユーザー名:」以外は何も出力されません。
現在のユーザー名を取得する最も簡単で最良の方法は何ですか?
Win32API GetUserName
関数を使用します。例:
#include <windows.h>
#include <Lmcons.h>
char username[UNLEN+1];
DWORD username_len = UNLEN+1;
GetUserName(username, &username_len);
私のために働いた修正されたコード:
TCHAR username[UNLEN + 1];
DWORD size = UNLEN + 1;
GetUserName((TCHAR*)username, &size);
Visual Studio Express 2012(Windows 7)を使用していますが、Dev-Cppでも同じように機能する可能性があります
Windowsでは[〜#〜] username [〜#〜]環境変数または GetUserName 関数を使用します
できます:
#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";
}