我想使用c ++平台执行linux命令,我正在使用system()但是当我写:
cout<<"Enter the command"<<endl;
cin>>arraystring[size];
system(arraystring.c_str());
它给出错误!
a4.cpp: In function ‘int main()’:
a4.cpp:75:20: error: request for member ‘c_str’ in ‘arraystring’, which is of non-class type ‘std::string [100] {aka std::basic_string<char> [100]}’
system(arraystring.c_str());
我该怎么做才能克服这个错误?
答案 0 :(得分:2)
实际上,您已将arraystring
变量定义为:
string arraystring[100];
因此,当你写下声明时
system(arraystring.c_str);
arraystring
是std::string
的数组,会出错。
将其更改为:
system(arraystring[size].c_str());
答案 1 :(得分:1)
您可以使用:
std::string command;
std::cout << "Enter the command" << endl;
std::cin >> command;
system(command.c_str());
只要command
只是一个单词,那就可以。如果要使用多字命令,可以使用:
std::getline(std::cin, command);
system(command.c_str());