如何在软件代码中使用ofstream创建文件



我正在开发一个软件,我的任务是在软件中进行更改以添加我需要记录数据的某些功能。我正在尝试使用ofstream创建日志文件,但我不知道为什么它没有在我尝试的任何位置创建文件。我有代码,我正在将其附加到现有的软件进程中。

ofstream k;
k.open("ko.txt",ios::app);
if (!k)
{
OutputDebugString(_T("file not created"));
return 1;
}

上面的代码始终打印未创建的文件。 我试过位置%TMP%/orgName/Logs/ko.txt我无法创建日志文件

如果k.open("ko.txt",ios::app);不起作用,则意味着您无权在当前目录中创建文件,或者您无法修改文件

在Windows下你可以将文件创建到当前用户的目录Documents中,并且可以使用getenv("USERPROFILE")获取用户主页目录或通过getenv("USERNAME")获取用户名,目标是使路径C:\Users<usename>\Documents\ko.txt

std::string path = std::string(getenv("USERPROFILE")) + "\Documents\ko.txt";
std::ofstream(path.c_str(), ios::app); // .c_str() useless since c++11
if (!k)
{
OutputDebugString(_T("file not created"));
return 1;
}

std::string path = std::string(":\Users\") + getenv("USERNAME") + "\Documents\ko.txt";
std::ofstream(path.c_str(), ios::app); // .c_str() useless since c++11
if (!k)
{
OutputDebugString(_T("file not created"));
return 1;
}

最新更新