我正在尝试使用用户的输入作为将传递给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()会工作吗?
答案 0 :(得分:3)
首先,永远不要使用gets()
。它应该永远不会被包含在标准库中,因为比字符串长的输入将覆盖堆栈内存并导致未定义的行为(可能是某种类型的崩溃)。如果你使用C字符串,fgets()
是可接受的替代品。
您可以使用C ++字符串执行此操作:
std::string line;
std::getline(std::cin, line);
system(("SayStatic.exe " + line).c_str());