gpt4 book ai didi

c - 函数内部的参数

转载 作者:行者123 更新时间:2023-11-30 19:47:48 27 4
gpt4 key购买 nike

我有一项工作要做,其中我必须在函数内保持一个循环,期望以下参数:-“i”插入-“s”进行搜索-“q”退出

如何保持这个循环?我查找了一些选项,似乎可以使用 while 或 switch,但我不确定哪种是读取这些字符的最佳方法(也许使用 fscanf ?)。我也不确定如何读取参数“i”之后的内容,因为输入将是“i word 9”,因此在检测到要插入的 i 后,我必须读取一个字符串和一个整数。任何人都知道如何做到这一点?抱歉,这看起来很简单,但我是编程新手。

编辑:这是我到目前为止所拥有的

while (loop) {
fscanf(stdin,"%c",&par);
if (strcmp(&par,"i")){
scanf("%s %d",palavra,p);
raiz = insere(raiz,&palavra,p);
}
else if (strcmp(&par,"b")){
scanf("%s",palavra);
busca(raiz,&palavra);
}
else if (strcmp(&par,"q"))
loop = 0;
}

编辑2:这就是我现在所拥有的,当参数为i时,我在读取字符串和整数时遇到问题,不知何故它使函数崩溃

while (1) {
c = getchar();
if (c == 'f')
break;
else if (c == 'i'){
fscanf(stdin,"%s",&palavra);
scanf("%d",&p);
raiz = insere(raiz,palavra,p);
}
else if (c == 'b') {
scanf("%s",palavra);
busca(raiz,palavra);
}
}

提前致谢!

最佳答案

与我认为您想要的相比,您拥有的代码看起来并不算太糟糕。您可以将“while (loop)”替换为“while (1)”,然后使用现有代码“loop = 0;”与“打破;”这是一种更标准的做事方式。另外,“fscanf(stdin...”与“scanf(...”) 相同...默认情况下,scanf 将从 stdin 读取。您可能需要检查 strcmp 的文档,因为它返回 0 表示完全匹配,并且我不要认为这会在“if”语句中执行您想要的操作。您应该能够使用 scanf 读取您想要的值,它会给您带来错误吗?

关于c - 函数内部的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20456833/

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