如何在放置 .cpp 文件的目录中创建目录?

问题描述

我正在使用此代码在桌面文件夹中创建一个目录。

#include <iostream>
#include <stdio.h>
#include <direct.h>
#include<string>
using namespace std;
int main()
{
string k,s="c:/Users/Dell/Desktop/";
cin>>k;
string p =s+k;
    if (mkdir(p.c_str()) != 0)
    {
       cerr<<"Failed"<<endl;
    }
    return 0;
}

但是此代码仅适用于我的电脑,因为它具有整个父目录路径。 我想在放置 main.cpp 的工作目录中创建一个文件夹,因为我们不知道用户将在哪里放置 cpp 文件。 我知道论坛上有很多与此问题类似的解决方案,但我在这里找不到或无法理解任何可以帮助我的解决方案。谢谢。

解决方法

你真的是说 .cpp 文件吗?

您可以使用 __FILE__ 宏以字符串形式获取文件名,然后使用 std::filesystem::path 对其进行操作,但您确定这真的是您想要做的吗?您是否希望最终用户在他们想要运行的位置编译该程序?

您还可以(理论上)使用 main 的 argv 参数获取执行程序的路径,这似乎更可能是您的意思,但它在许多令人惊讶的方面都不可靠。 ..