2016-04-01 20 views
6

Sto scrivendo un codice C++ e voglio stampare il nome file corrente con la sua estensione. Sì, è una delle domande più frequenti. Una soluzione è usare argv [0]. È bello, ma non sta dando l'estensione. Posso averlo con l'estensione?Stampa il nome del file corrente con estensione in C++

+2

Quale sistema operativo - Windows/Linux? – Ajay

+3

Cosa c'è di sbagliato in 'std :: cout << __FILE__' ??? –

+0

grazie. Funziona. – froghramar

risposta

3

È possibile stampare il nome completo del percorso utilizzando std::cout << __FILE__.

Se si desidera stampare il nome del file da solo, allora si può fare:

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

Su quale piattaforma ci si trova. Seguente programma

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

funziona perfettamente per me su Debian (GCC), Windows (msvc e mingw gcc)

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

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

Esso contiene in realtà di comando utilizzata per avviare il programma.

+0

Sto usando ubuntu 14.04 – froghramar

+0

E come collaudi il tuo programma? Quali passi esegui per eseguirlo? – Zereges

+0

Sto usando l'editor di testo sublime 3 e fornisce l'opzione per l'esecuzione. – froghramar

Problemi correlati