2016-04-01 103 views
6

我正在写一个C++代码,我想打印当前文件名及其扩展名。是的,这是一个常见问题。一种解决方案是使用argv [0]。这很酷,但它没有给予延伸。我可以使用扩展名吗?在C++中打印带扩展名的当前文件名

+2

哪个操作系统 - 在Windows/Linux呢? – Ajay

+3

'std :: cout << __FILE__'有什么问题??? –

+0

谢谢。有用。 – froghramar

回答

3

您可以使用std::cout << __FILE__打印完整路径名称。

如果你想独自打印文件名,那么你可以做:

std::string file = __FILE__; 
size_t index; 
for (index = file.size(); index > 0; index--) 
{ 
    if (file[index - 1] == '\\' || file[index - 1] == '/') 
     break; 
} 
std::cout << file.substr(index); 
2

你在哪个平台上。下面的程序

#include <iostream> 
int main(int argc, char* argv[]) 
{ 
    std::cout << "Name: " << argv[0] << std::endl; 
} 

完全对我的作品在Debian(GCC),窗口(MSVC和MinGW GCC)

> a.exe 
Name: a.exe 
> a 
Name: a 

$ ./a.out 
Name: ./a.out 

它实际上包含用于启动该程序的命令。

+0

我使用的是Ubuntu 14.04 – froghramar

+0

而你如何测试你的程序?你执行什么步骤来执行它? – Zereges

+0

我使用的是崇高的文本3编辑器,它提供了运行选项。 – froghramar