c++ - 如何在 C++ 的 system() 函数中传递字符数组?

标签 c++ string

我想使用 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());

我应该怎么做才能克服这个错误?

最佳答案

实际上,您已将 arraystring 变量定义为:

string arraystring[100];

因此,当您编写语句时

system(arraystring.c_str);

arraystringstd::string 的数组,给出了错误。

将其更改为:

system(arraystring[size].c_str());

关于c++ - 如何在 C++ 的 system() 函数中传递字符数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29191595/

相关文章:

c++ - 将 std::string 传递给 C 风格的 API 是否安全?

C 将包含文件路径的字符串传递给 main()

c++ - QTableWidget 和 QLineEdit - 位置和文本内容

c++ - Inotify 不适用于 etc/passwd

java - 如何删除相同的单词?

C# 金钱的字符串格式问题

c++ - MFC如何从另一个类获取CString到CRegSettings类

c++ - 通过引用派生类对象从基类对象向下转换时抛出 bad_cast 异常

c++ - 强制枚举为无符号长类型

c++ - Vector 无法正确创建对象