Я хочу удалить файл, имя которого указано в аргументе программы; но, поскольку тип файла останется постоянным (.bat), я хочу, чтобы он автоматически задавался программой (например, запуск deletefile.exe script
удалит "script.bat" (который находится в том же каталоге)). Я видел этот вопрос, но решение, похоже, не работает.
Я что-то неправильно понял?
Моя попытка ниже:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(int argc, char *argv[]){
if(argv[1] == string("del")){
string file_to_remove;
file_to_remove = argv[2]+".bat";
if (remove(file_to_remove.c_str()) != 0){
cout<<"Error in file deletion.\n";
}
else {
cout<<"Removed alias " << argv[2] << "\n";
}
}
return 0;
}
Но это приводит к ошибке компилятора
<source>: In function 'int main(int, char**)':
<source>:12:33: error: invalid operands of types 'char*' and 'const char [5]' to binary 'operator+'
12 | file_to_remove = argv[2]+".bat";
| ~~~~~~~^~~~~~~
| | |
| | const char [5]
| char*
Отвечает ли это на ваш вопрос? c++ недопустимые операнды типов 'char*' и 'const char [2]' для двоичного 'operator+'
@Рузихм Ах! Я должен был искать дубликат. Тск.
@AdrianMole Мне нравится ваш ответ ниже. Если он в конечном итоге будет закрыт, вы скопируете его в другой вопрос? я тоже там проголосую
@Ruzihm На самом деле, я не совсем уверен, что другой вопрос является дубликатом. Хотя, конечно, это тесно связано. Я не голосовал за закрытие, так как это было бы решающим (молотковым) голосованием.