如何将参数从c ++程序传递给cmd?

时间:2012-02-25 06:22:25

标签: c++ command-line cmd

我正在尝试使用用户的输入作为将传递给cmd的参数...

我知道要从我的程序中使用cmd,我需要使用它:

system("SayStatic.exe hello world");

但这就是我的需要:

char item[100];
gets(item);
//after getting the input I need to pass it to SayStatic.exe that is the part I dont know

我知道我不能使用sysytem();为此,但其他像spawnl()或execl()会工作吗?

1 个答案:

答案 0 :(得分:3)

首先,永远不要使用gets()。它应该永远不会被包含在标准库中,因为比字符串长的输入将覆盖堆栈内存并导致未定义的行为(可能是某种类型的崩溃)。如果你使用C字符串,fgets()是可接受的替代品。

您可以使用C ++字符串执行此操作:

std::string line;
std::getline(std::cin, line);
system(("SayStatic.exe " + line).c_str());