抱歉,这个标题不好,但我不知道更好的标题!
目标:我正在尝试创建一个命令处理程序。因此,我通过 printf("cmd: ")
打印出来,并通过 fgets()
在标准输入上列出。如果有输入,我将通过 if .. else if
检查命令。所以我现在的问题是:如果标准输入上没有输入,它应该重复该函数并打印 cmd!
int cmd_handler()
{
printf("cmd: ");
char command[LINE_MAX];
fgets(command, LINE_MAX, stdin);
if(command != NULL)
{
if(strcmp(command, "xyz"))
{
xyz();
}
}
return 0;
}
我真的不知道该如何安排。在 else
上简单调用 cmd_handler() 不起作用。也许有人可以给我提示如何解决它。
编辑:
如果标准输入上没有输入(例如 2x),它应该看起来像这样:
cmd:
cmd:
cmd:
此代码不是真实的代码!
问候
最佳答案
你需要一个循环。我建议使用带有退出条件的 while 循环,可能由“退出”命令设置。
int run = 1;
while (run) {
printf("cmd: ");
...
else if (strcmp(command, "exit") == 0) {
run = 0;
}
}
关于C:捕获空输入并打印命令提示符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20503951/