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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (55)

为什么我不能使用带有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()总是返回false,“%% Temp %%”和“\%Temp \%”也不无效

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

提问于
用户回答回答于

%Temp%替代的东西通过一些Windows程序进行,而不是由C ++运行时。如果您想这样做,只需自己检索环境变量并构建路径。像这样的东西会做,但你会想要添加一些错误检查:

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

扫码关注云+社区

领取腾讯云代金券