Ошибка при компиляции в g++
$ g++ Scan.cpp -o Scan
Scan.cpp: In function ‘int main()’:
Scan.cpp:13:9: error: cannot convert ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} to ‘const char*’
13 | system(ScanCom);
| ^~~~~~~
| |
| std::string {aka std::__cxx11::basic_string<char>}
Код
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
int main()
{
string file;
string fileS = file + ".jpg";
string ScanCom = "scanimage -p > /home/themihai/scans/" + fileS;
cout << "FileName:";
cin >> file;
system(ScanCom);
}
Ответы (1 шт):
Автор решения: EOF
→ Ссылка
Пойдём по порядку:
- Это не ошибка, но
stdlib.h- это файл из С. В С++ используйтеcstdlib. - На момент выполнения строки
string fileS = file + ".jpg";, переменнаяfileсодержит в себе пустую строку. Читайте строку до того, как будете её использовать. - Функция
systemожидаетchar*илиconst char*, а не обьектstring. Методc_str()может Вам помочь. Вызвайте так:system(ScanCom.c_str());.