프로그램은 2 정수를 읽고 키보드에서 도입 된 기호에 따라 합계 또는 곱을 계산해야합니다. 특정 순간에 q를 누르면 종료해야합니다.문자가 눌려 졌는지 확인
#include "stdafx.h"
#include <iostream>
#include<conio.h>
using namespace std;
int main()
{
char k, l ='h',c;
int a,b,s, p;
aici: while (l != 'q')
{
cin >> a;
if (_kbhit() == 0) //getting out of the loop
{
c = a;
if (c == 'q')
{
l = 'q';
goto aici;
}
}
cin >> b;
if (_kbhit() == 0)
{
c = b;
if (c == 'q')
{
l = 'q';
goto aici;
}
}
k = _getch();
if (_kbhit() == 0)
{
c = k;
if (c == 'q')
{
l = 'q';
goto aici;
}
}
if (k == '+')
{
s =(int)(a + b);
cout << s;
}
if (k == '*')
{
p = (int)(a*b);
cout << p;
}
}
return 0;
}
'a'와 'b'는 모두 int이므로 'q'를 입력하면 전체가 엉망이됩니다. a 및 b를 문자로 선언하지 않고 프로그램을 작동시킬 수 있습니까?
시작의 라인을 따라 뭔가를 할 수있는 가능성이있다. 간단한 사용 시나리오 ** 유스 케이스 **를 작성하십시오. –
'kbhit'와'cin'을 섞는 것은 나쁜 생각입니다. 'cin'이 돌아 오기를 기다리는 동안 차단되었지만'kbhit'에 대해서 테스트 할 수는 없습니다 – user4581301
Off 주제 : 모든'goto'는'continue'로 대체 될 수 있습니다. 그렇게 적은 사람들에게 불쾌감을 줄 것입니다. – user4581301