您好我想知道如何在c中动态使用2个参数的系统函数。
这是我的代码,因为你可以看到有端口号3306,我想动态地使用它(比如用户输入端口号)但是当我尝试添加scanf()
时它会给我错误{{ 1}}函数不带3个参数,系统函数不带2个参数..
strcpy()
对于以下代码,如果我想int main ()
{
char command[50];
strcpy( command, "netstat -aon | findstr 3306" );
system(command);
return(0);
}
编号3306并在scanf()
之后将其复原,我应该如何更改。
答案 0 :(得分:3)
阅读该号码并使用snprintf()
:
int port;
if (scanf("%d", &port) != 1) { /* input error */};
snprintf( command, sizeof command, "netstat -aon | findstr %d", port );
此外,使用main()的标准签名,例如:int main(int argc, char *argv[])
。
答案 1 :(得分:0)
#include <stdio.h>
#include <string.h>
int main(void)
{
char *comm1 = "netstat -aon | findstr ";
char comm2[50];
char comms[6];
scanf("%s", &comms);
strcpy(comm2, comm1);
strcat(comm2, comms);
return 0;
}
这比@Blue Moon的答案效率低,但重点是,有很多方法可以做到这一点。