开发者社区> 问答> 正文

该标志如何工作?

这是我的代码。我想让它在用户输入y时起作用,这会改善循环,否则,如果他们按q,程序将退出。我看到许多人使用标志,并且我认为这很棒,所以我尝试做一些事情,但我不知道为什么它不起作用。我尝试使用break;并继续;但仍然输出不是我想要的。


#include <stdio.h>
int main(){



int broj1,broj2,zbir;
  char exit;
  int flag = 0;

  while(!flag){
  printf("Enter numbers: \n");
  scanf("%d %d",&broj1,&broj2);
  zbir = broj1+broj2;
  printf("N1 + N2 is: %d\n",zbir);

  printf("Type 'q' if you want to exit or 'y' to continue: ");
  scanf("%c",&exit);


  if(exit=='q')
  flag=1;

  if(exit=='y')
  flag=0;

}


  return 0;
}

展开
收起
kun坤 2019-11-29 10:52:54 383 0
1 条回答
写回答
取消 提交回答
  • 您可以使用exit = getch();而不是scanf,并且如果您使用getch(),则用户无需在键入y或q后按Enter,如果要保留scanf,可以fflush(stdin);在其之前添加(从上一个scanf中删除Enter)呼叫)
    
    
    请注意,fflush输入流(例如stdin)未在标准C中定义。在任何情况下,scanf即使您的平台支持将换行符刷新也摆脱掉换行符通常是一个坏主意。只需阅读直到换行符,或者在后面的每个scanf格式字符串前面加上一个额外的空格(例如" %d")即可使用空白。或者,更好的是,将其fgets用于基于行的输入scanf。
    
    2019-11-29 10:53:15
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载