为什么我不能使用带有 ofstream 的 Windows 环境路径来编写文本文件?

Why i can't use Windows Environment path with ofstream to write a text file?

为什么我不能使用带有 ofstream 的 Windows 环境路径快捷方式来编写示例文本文件?

    \ C:\Users\Me\AppData\Local\Temp\Test.txt

    std::string Path = "%Temp%\Test.txt"

    ofstream myfile;
    myfile.open (Path);
    if (!myfile.is_open())
    {
     cout << "Could not create temp file." << endl;
    }
    myfile << "Hello World";
    myfile.close();

myfile.is_open() 始终 return 错误,“%%Temp%%”和“\%Temp\%”也不起作用。

我可以通过 Windows API 获取临时路径,但我不想在此应用程序中使用 API。

谢谢

%Temp% 替换是由某些 Windows 程序完成的,而不是由 C++ 运行时完成的。如果你想这样做,只需自己检索环境变量并建立一个路径。像这样就可以了,但是你需要添加一些错误检查:

ostringstream tempfilepath;
tempfilepath << getenv("Temp") << '/' << "Test.txt";
ostream myFile;
myFile.open(tempfilepath.str());
...etc...