gpt4 book ai didi

c - 如何在 C 中创建命令行?

转载 作者:太空宇宙 更新时间:2023-11-04 00:35:27 24 4
gpt4 key购买 nike

我正在尝试为 C 中的应用程序创建命令行。

int main(int argc, char const *argv[])
{
char cmd[40];

do {
scanf("%[^\n]", cmd);

if(strcmp(cmd, "start"))
new_game();
} while(strcmp(cmd, "exit"));
return 0;
}

我不能使用“%s”,因为该命令可能有多个参数,所以我需要使用异常并忽略新行字符。问题是程序在一次插入后将不再调用 scanf 。为什么会这样?

谢谢

最佳答案

使用fgets而不是读取整个输入,如下所示:

char cmd[255];
fgets(cmd, 255, stdin);

可以找到样本here .


另外,strcmp您的示例中未正确使用函数。 Strcmp返回:

  • <0 当第一个不匹配的字符在 ptr1 中的值小于 ptr2 中的值时,
  • 0 当它们相等时
  • '>当第一个不匹配的字符在 ptr1 中的值大于 ptr2 中的值时为 0

因此在您的示例中,您应该使用 strcmp(str1, str2) == 0!strcmp(str1, str2) 简称。


注意: 使用 fgets 时应小心。 fgets 认为换行符有效,并且它包含在字符串中。在 scanf("%s") 的另一边,结果字符串中不包含换行符。

关于c - 如何在 C 中创建命令行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41370618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com