プログラムは2つの整数を読み、キーボードから導入された記号に応じて合計または積を計算する必要があります。任意の瞬間にqを押すと、それは終了する必要があります。charが押されているかどうかの確認
#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をcharとして宣言せずにプログラムを動作させることはできますか?
スタートの線に沿って何かを行うことが可能です。簡単な使用シナリオ、**ユースケース**を記述してください。 –
'kbhit'と' cin'を混ぜるのは悪い考えです。 'cin'が戻るのを待っている間にブロックされている間は、' kbhit'のテストはできません。 – user4581301
オフトピック:これらの 'goto'はすべて' continue'に置き換えることができます。あなたはそのように人々を怒らせるでしょう。 – user4581301