如何在C ++中获取可执行文件名?

时间:2017-10-09 03:20:52

标签: c++ windows console

当编译器编译代码时,它会吐出一个可执行文件。 我想要做的是在运行时获取该可执行文件的名称。唯一的问题是我搜索的每一个地方,我只能抓住可执行文件的整个路径。

如果我有一个名为app.exe的可执行文件,我想在控制台中输出它。 在线人士说使用GetModuleFileNameGetModuleBaseNameargv[0],但所有这些都为我提供了。C:\Users\Lone-PC\Desktop\app.exe的完整路径,而不仅仅是{{} 1}}单独。

我不想使用任何库,这些都包含在Windows机器的控制台应用程序中。

1 个答案:

答案 0 :(得分:0)

感谢用户HTNW,我找到了我想要的东西。 我必须从argv[0]

等提到的方法处理目录

所以我查了一下并借了代码并创建了一个函数,它将以字符串形式返回文件名。

以下是解决我的问题的代码

string getFileName(string path) {
    string filename = path;
    const size_t last_slash_idx = filename.find_last_of("\\/");
    if (std::string::npos != last_slash_idx) {
        filename.erase(0, last_slash_idx + 1);
    }
    const size_t period_idx = filename.rfind('.');

    return filename;
}
相关问题