Obtenir le nom d'utilisateur actuel en C++ sur Windows

Je cherche à créer un programme qui récupère le courant de l'utilisateur nom d'utilisateur sur Windows à l'aide de C++.

J'ai essayé ceci:

char *userName = getenv("LOGNAME");
stringstream ss;
string userNameString;
ss << userName;
ss >> userNameString;
cout << "Username: " << userNameString << endl;

Rien n'est délivrée à l'exception de "nom d'utilisateur:".

Quel est le plus simple, la meilleure manière d'obtenir le nom d'utilisateur?

En outre, cela pourrait vous aider: cplusplus.com/forum/beginner/12076
Vous ne devriez pas utiliser des variables d'environnement pour récupérer le nom d'utilisateur. Il n'est pas garanti d'exister. En général, en dehors d'un fichier BAT, vous ne devriez pas utiliser des variables d'environnement.
Si vous devez utiliser une variable d'environnement pour récupérer le nom d'utilisateur, le bon est USERNAME pas LOGNAME. Vous pouvez également USERDOMAIN.

OriginalL'auteur Andrew | 2012-07-20