为什么我不能使用带有 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...
为什么我不能使用带有 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...