2016-04-01 12 views
6

私はC++コードを書いているので、拡張子を付けて現在のファイル名を出力したい。はい、よくある質問です。 1つの解決策は、argv [0]を使用することです。それはクールですが、拡張子を与えていません。私は延長でそれを持てますか?現在のファイル名をC++で拡張子で印刷する

+2

どのOS - 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

お使いのプラットフォームはどちらですか? 、窓(MSVCとのMinGW GCC)

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

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

それは実際にプログラムを起動するために使用されるコマンドが含まれてい

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

は、debian(GCC)の上に私のために完璧に動作プログラムを以下に示します。

+0

私はubuntuを使用しています。14.04 – froghramar

+0

あなたのプログラムはどうやってテストしますか?実行するためにどのようなステップを実行しますか? – Zereges

+0

私は崇高なテキスト3エディタを使用しており、実行するオプションを提供しています。 – froghramar

関連する問題