重複の可能性:
プログラムがcinを待機していない
私は次のコードを書きました:
#include <iostream>
using namespace std;
void search(int pre, int a, int b, int x) {
char c;
cout << "Is the number " << ((x == 2) ? b : a) << endl;
c = cin.get(); ////// this does not block
if (c == 'y') return;
else {
cout << "Is the number " << ((x == 2) ? b : a) << " closer to your number than " << pre;
c = cin.get();
if (c == 'y') {
search(a, a, (a + b) / 2, 2);
} //c=='y'
else search(a, (a + b) / 2, b, 1);
}
}
int main() {
int N;
cout << "Enter N? ";
cin >> N;
search(N, 1, N, 1);
return 0;
}
私の質問はそれに関するものではないので、論理を理解していなくても心配する必要はありません。
検索関数には、2つのcin.get()があり、ユーザーが文字を入力する必要があります。私の問題は、プログラムが2番目のcin.get()の後でのみ入力をブロックすることです。
例えば:
Is the number 7 //program doesn't wait after this
Is the number 7 closer to your number than 8 //program blocks here for an input
なぜそうするのですか?