如何在软件代码中使用 ofstream 创建文件
How to create file using ofstream in software's code
我正在开发一个软件我的任务是对软件进行更改以添加我需要记录数据的某些功能。我正在尝试使用 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;
}
我正在开发一个软件我的任务是对软件进行更改以添加我需要记录数据的某些功能。我正在尝试使用 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;
}