C++ Ofstream在Windows临时目录中创建文件 流批的; 打开(“olustur.bat”,ios::out); 批处理

C++ Ofstream在Windows临时目录中创建文件 流批的; 打开(“olustur.bat”,ios::out); 批处理,c++,windows,ofstream,temp,C++,Windows,Ofstream,Temp,您可以使用Win32 API函数检索临时文件夹的完整路径,然后使用std::ofstream向其写入文件 ofstream batch; batch.open("olustur.bat", ios::out); batch <<"@echo off\n"; batch.close(); system("olustur.bat"); #包括 #包括 #包括 #包括 使用名称空间std; int main() { CHAR czTempPath[MAX_PATH]={0}; GetTe

您可以使用Win32 API函数检索临时文件夹的完整路径,然后使用
std::ofstream
向其写入文件

ofstream batch;
batch.open("olustur.bat", ios::out);
batch <<"@echo off\n";
batch.close();
system("olustur.bat");
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
CHAR czTempPath[MAX_PATH]={0};
GetTempPathA(最大路径,czTempPath);//检索临时路径

CUT通常在代码> C:\\用户\AppDATA \TABE\TIMP < /COD>是,但这只适用于我的计算机。TEMP也存储在 %ToMP%中。取决于如何编译C++,可以使用<代码> STD::GETEnV< /C>或“代码> GeEngutialValue< /Calp>。%ToMP%\OLUSTURUR.BAT不工作,您不能使用<代码> %TEMP% < COD>e> 直接使用流(或任何其他文件I/O函数)。必须首先查询其值。使用
std::getenv(“TEMP”)
GetEnvironmentVariable(“TEMP”)
获取解析的临时路径,然后将文件名附加到该路径的末尾,然后将完整路径传递到流的
实际上,我的问题是将其传递到这里的“batch.open”(“olustur.bat”,ios::out);@Rıdvan切丁听起来需要学习如何连接字符串。
#include <iostream>
#include <windows.h>
#include <string>
#include <fstream>

using namespace std;

int main()
{
    CHAR czTempPath[MAX_PATH] = {0};
    GetTempPathA(MAX_PATH, czTempPath); // retrieving temp path
    cout << czTempPath << endl;

    string sPath = czTempPath;
    sPath += "olustur.bat"; // adding my file.bat

    ofstream batch;
    batch.open(sPath.c_str());
    batch << "@echo off\n";
    batch.close();

    system(sPath.c_str());

    return 0;
}