Linux 中用C++向当前用户目录写入txt文件,如果遇到目录不存在,则先创建目录
时间: 2024-03-27 19:40:08 浏览: 69
您可以使用 C++ 的文件流来实现向当前用户目录写入 txt 文件,示例代码如下:
```c++
#include <fstream>
#include <iostream>
#include <unistd.h> // 获取当前用户目录
#include <sys/stat.h> // 创建目录
#include <sys/types.h>
using namespace std;
int main() {
string homedir = getenv("HOME"); // 获取当前用户目录
string filepath = homedir + "/example.txt"; // 文件路径
string dirpath = homedir + "/example_dir"; // 目录路径
// 创建目录
if (mkdir(dirpath.c_str(), 0777) == -1) {
cerr << "创建目录失败!" << endl;
return 1;
}
// 打开文件
ofstream outfile(filepath);
if (outfile) { // 判断文件是否成功打开
outfile << "Hello, world!";
outfile.close(); // 关闭文件
cout << "写入成功!" << endl;
} else {
cout << "打开文件失败!" << endl;
}
return 0;
}
```
在上述代码中,我们首先使用 `getenv("HOME")` 函数获取当前用户目录,然后拼接文件路径和目录路径。接着,我们使用 `mkdir` 函数创建目录,如果创建失败就输出错误信息并退出程序。最后,我们使用文件流打开文件,如果成功就写入字符串并关闭文件,否则就输出错误信息。
需要注意的是,在使用 `mkdir` 函数创建目录时,需要在第二个参数中指定目录的权限。在上述代码中,我们使用 `0777` 来指定目录权限,其中 `0` 表示权限位,`777` 表示读、写、执行权限都开放。如果不想让其他用户有访问权限,可以将 `0777` 替换为 `0700`。
阅读全文