这是我的代码。我想让它在用户输入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;
}
您可以使用exit = getch();而不是scanf,并且如果您使用getch(),则用户无需在键入y或q后按Enter,如果要保留scanf,可以fflush(stdin);在其之前添加(从上一个scanf中删除Enter)呼叫)
请注意,fflush输入流(例如stdin)未在标准C中定义。在任何情况下,scanf即使您的平台支持将换行符刷新也摆脱掉换行符通常是一个坏主意。只需阅读直到换行符,或者在后面的每个scanf格式字符串前面加上一个额外的空格(例如" %d")即可使用空白。或者,更好的是,将其fgets用于基于行的输入scanf。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。