作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我运行此代码并点击其中一个开关中断(不包括大小写“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/
我是一名优秀的程序员,十分优秀!