#include <iostream>
#include <string>
#include <fstream>
//---
using namespace std;
//---
int main()
{
string myFile = "theName.txt";
std::string combined = "echo %USERPROFILE% >> C:\\Windows\\Temp\\"+ myFile ;
system(combined.c_str());
fstream dog;
std::string combined2 = "C:\\Windows\\Temp\\" + myFile;
dog.open(combined2.c_str());
char data[100];
dog >> data;
cout << data;
int cat = 0;
cin >> cat;
return 0;
}
//--
//---
//------------------------------------------------------------------------------------
字符串
还可以更好。。尽管从简单的Angular 来看目前最好的方法是...我已经在网上看过了这个问题的几个答案,我学到的很简单……没有命名空间std的编码;显然我刚学会。
看看我该做些什么修改...我明白了...我不仅应该删除文件,而且还应该从字符串中检索显式的用户名...
2条答案
按热度按时间1mrurvl11#
这是一个非常间接和繁琐的方式,如果这样做。您永远不需要调用shell命令来获取任何类型的操作系统信息。
在这种情况下,Windows API调用
GetEnvironmentVariable()
可以直接检索环境变量:字符串
或者使用
std::getenv()
:型
这将获得一个 * 环境变量 *,但如果您特别想要当前用户名,即使这样也是不必要的(并且可能不安全),最好使用
GetUserName()
检索:型
请注意,
TCHAR
和TEXT
等宏是为char
或wchar_t
定义的,具体取决于构建版本是否为Unicode。有更简单的char
文本处理API的变体,带有A
后缀,如GetUserNameA()
,GetEnvironmentVariable()
,您可以使用它们。大多数Windows API文档都有示例支持(通常用于多个相关的API)。在这种情况下,以下内容适用:
jljoyd4f2#
字符串
太棒了,谢谢!
好吧,在克服了std的命名空间后,再多一点...我也是这么打算的我已经想出了代码使用#Cliffords代码在. cpp.
一个非常基本的,但这工作和感谢!没有人叫我哑巴不要!