2012-03-02 26 views
5

Có một cách đơn giản để có được tên ứng dụng sử dụng Boost (có thể với boost::program_options?)Boost Options - Nhận tên ứng dụng

Điều sẽ như thế này:

argv[0] = "c:\foo\bar\appname.exe"

Tôi muốn để có var1 = "appname"

+2

Vâng, có 'basename (3)', mặc dù đó không phải là rất Boosty. – zmccord

+0

Nếu bạn thực sự muốn được ưa thích, bạn có thể sử dụng 'boost.regex' để phân tích cú pháp đường dẫn. – Linuxios

Trả lời

10

Bạn có thể sử dụng boost :: filesystem để trích xuất tên từ đường dẫn. trông giống như sau:

#include <boost/filesystem.hpp> 

boost::filesystem::path p = argv[0]; 
std::string var1 = p.stem().string(); 
+0

Đó chính xác là những gì tôi đang tìm kiếm. Cảm ơn Tobias! –

Các vấn đề liên quan