C:捕获空输入并打印命令提示符

标签 c event-handling fgets

抱歉,这个标题不好,但我不知道更好的标题!

目标:我正在尝试创建一个命令处理程序。因此,我通过 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/

相关文章:

c - 生成不重复的随机数。我的逻辑正确吗?

.net - 使用 SetValue 添加事件处理程序

c - 如何从文件中读取数字以获取c中的大小

c - 如何正确读取整数?

c - #ifdef 找出使用的是 debian 还是 fedora/RH/centos

c - 在单个管道中进行多次读写

c - 使用函数查找字母和单词

c# - 对不同的 Windows 窗体控件使用相同的事件处理程序是否安全?

java - 如何为“取消”按钮提供与“关闭 X”相同的属性

c++ - 从文件中读取单词并将它们存储在 vector 中 C++