У меня есть код:
#include <string>
#include <iostream>
#include <filesystem>
#include <stdio.h>
#include <direct.h>
#include <vector>
#include <iterator>
#include <conio.h>
#include <windows.h>
namespace fs = std::filesystem;
using namespace std;
std::string check_dir()
{
char current_work_dir[FILENAME_MAX];
std::string path = _getcwd(current_work_dir, sizeof(current_work_dir));
std::cout << path << std::endl;
return path;
}
int zip(string path)
{
std::string zi = "\7za.exe\ e ";
system(zi + path);
return 1;
}
int main() {
const fs::path startPath{check_dir()};
const std::string extension{ ".zip" };
std::vector fileList(fs::directory_iterator(startPath), {});
for (const fs::directory_entry& de : fileList) {
std::string p{ de.path().string() };
if (p.substr(p.size() - extension.size(), extension.size()) == extension)
std::cout << p << "\n";
zip(p);
}
_getch();
return 0;
}
Он выводит ошибки при компиляции :
1>------ Сборка начата: проект: BroBot install, Конфигурация: Debug Win32 ------
1>BroBot install.cpp
1>C:\Users\Mike\Desktop\install\install\install.cpp(32,22): warning C4129:: неизвестная escape-последовательность
1>C:\Users\Mike\Desktop\install\install\install.cpp(33,21): error C2664: "int system(const char *)": невозможно преобразовать аргумент 1 из "std::basic_string<char,std::char_traits<char>,std::allocator<char>>" в "const char *"
1>C:\Users\Mike\Desktop\install\install\install.cpp(33,15): message : Для выполнения данного преобразования нет доступного оператора преобразования, определенного пользователем, или вызов оператора невозможен
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdlib.h(1218,26): message : см. объявление "system"
1>Сборка проекта "install.vcxproj" завершена с ошибкой.
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Подскажите как можно исправить этот баг