C++ 在空白处拆分字符数组
我正在编写一个程序,将在UNIX中重新创建管道。用户输入一个命令,该命令存储在包含参数的char数组中,为了执行它们,我需要调用exec,但我的程序是如何将命令与参数分开,以便执行以下操作:C++ 在空白处拆分字符数组,c++,string,unix,system,C++,String,Unix,System,我正在编写一个程序,将在UNIX中重新创建管道。用户输入一个命令,该命令存储在包含参数的char数组中,为了执行它们,我需要调用exec,但我的程序是如何将命令与参数分开,以便执行以下操作: data in char command: ls -l execvp("ls", <arguments>(in this case -l)); char命令中的数据:ls-l execvp(“ls”,在本例中为-l)); 也许您需要使用strtok函数:。可能有用getline总是向我的方向抛
data in char command: ls -l
execvp("ls", <arguments>(in this case -l));
char命令中的数据:ls-l
execvp(“ls”,在本例中为-l));
也许您需要使用strtok函数:。可能有用getline总是向我的方向抛出错误,getline真的是唯一的解决方案吗?当然不是。如果它们只是以空格分隔的字符串,那么在将C字符串加载到
std::istringstream
中之后,您可以使用naturalstd::string
提取运算符。链接的文章中有*许多这样的示例,我敦促您查看可用的不同选项。如果std::getline
向您抛出错误,则可能是您没有正确设置流(例如,流不应处于二进制模式)。您的答案可能是正确的,但它不符合有关回答的堆栈溢出要求。有效答案应该包含代码示例,而不仅仅是指向文档的链接(即使它或多或少是官方的)。请修复它以恢复下行投票和/或获得更多上行投票。