gpt4 book ai didi

c - While/Switch 循环实现

转载 作者:行者123 更新时间:2023-11-30 15:32:24 29 4
gpt4 key购买 nike

当我运行此代码并点击其中一个开关中断(不包括大小写“x”)时,第一个 printf 语句输出两次。我不知道为什么会发生这种情况。想知道是否有人可以直接从代码中看到它,而不需要实际运行程序的函数。

int main(void)
{
int key;
char command, word[STRINGMAX];
struct data_node *first=NULL, *ptr, *new_node;

while (command)
{
printf("Enter a list command (+-flx): ");
scanf("%c", &command);
switch(command)
{
case '+' :
printf("'+' detected\n");
printf("Enter key data: ");
scanf("%d", &key);
printf("What string to store?: ");
scanf("%s", &word);
first = ptr = insert(&first, key, word);
break;

case '-' :
printf("'-' detected\n");
printf("Enter key data: ");
scanf("%d", &key);
delete(&first, key);
break;
case 'f' :
printf("'f' detected\n");
printf("Enter a key data: ");
scanf("%d", &key);
find_node(first, key);
break;
case 'l' :
printf("'l' detected\n");
dump_list(first);
break;
case 'x' :
printf("Goodbye.\n");
exit(0);
default :
break;
}
}
return (0);
}

任何帮助表示赞赏。谢谢。

最佳答案

在读取数字和字符串后添加 getchar(),因为 scanf 在输入流中留下新行字符。最好使用 fgets()。

维韦克

关于c - While/Switch 循环实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24252420/

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