所以我试图将我的文件保存到C:Drive上的Documents。所以它允许我给别人,它将保存到他们的文件。
我读了%USERPROFILE%,这意味着抓住C:\ Users \%USERPROFILE%\
即我的将是C:\ Users \ jsmit \但这对我不起作用。
void savePassword(string stringpassword, string site) {
ofstream out("C:\\Users\\%USERPROFILE%\\Documents\\New folder\\output.txt", ofstream::app); // Here
out << site << ": " << stringpassword << endl; // This is where it saves the password into the text file
out.close(); // Closes file
}
如果我这样做,它会起作用:
ofstream out("C:\\Users\\jsmit\\Documents\\New folder\\output.txt", ofstream::app);
我需要使用哪些代码将其提供给其他人,并且可以通过抓取正确的文件路径来保存到他们的文档中?
答案 0 :(得分:4)
C ++对您的操作系统环境变量一无所知。如果您想获得该变量所代表的内容,可以使用std::getenv
之类的
char * userpath = getenv("USERPROFILE");
std::string path
if (userpath != nullptr)
path = std::string(userpath) + "\\Documents\\New folder\\output.txt";
else
std::cout << "No user path";
答案 1 :(得分:1)
C ++标准库不做任何环境变量替换,因为它是特定于操作系统的东西。
由您来帮助您使用例如帮助GetEnvironmentVariable