2015-10-03 2 views
0

Как создать новый файл на основе командной строки.Именование нового файла из командной строки

Например, если мой argv [1] является файлом.extension, я хочу создать новый текстовый файл с именем file.txt.

Я попытался это:

ofstream a; 
a.open("argv[1].txt"); 

Но это очень очевидно, создает файл с именем ARGV [1] .txt вместо file.txt

+4

Пожалуйста, удалите этот вопрос –

+0

Это законный вопрос –

+0

его осуществление в том, чтобы рассекать проблема в основополагающих шагах - закройте это и подумайте о решениях меньших решений, которые вместе решают этот вопрос. –

ответ

1
a.open((std::string(argv[1]) + ".txt").c_str()); // if parameter is file with no extension 

или

a.open(argv[1]); // if parameter is file with extension 

Возможно :

std::string file = argv[1]; 
// do whatever you want (change extension, as commented) 
a.open(file.c_str()); 

Но я согласен на этот вопрос, вероятно, следует исключить .... не думаю, что это поможет кто-нибудь еще ....

+0

У файла уже есть расширение, я хочу удалить это расширение и заменить его на .txt –

+0

. Тогда просто используйте google с расширением файла с ++, и вы найдете магию http://stackoverflow.com/questions/6417817/easy-way-to-remove-extension-from -a-filename – jpo38

+0

Я получаю thi s error: нет соответствующей функции для вызова 'std :: basic_fstream > :: open (std :: string &)' –

Смежные вопросы