あなたの最初のアプローチは良くてとてもC++っぽいです。唯一の問題は、によって区切られた文字だけ\t
でなく、たとえば、プレーンスペース(
)によっても文字を読み取ることです。
コードは次のようになります。
#include <iostream>
void main () {
char c1, c2;
while (std::cin >> c1 >> c2) {
if (c1 == 'z' || c2 == 'z') break;
// Otherwise do something useful
}
}
別のアプローチはgetche()
、入力から1つの記号を取得し、それを画面に表示するために使用することです。コードは次のとおりです。
#include <iostream>
#include <conio.h>
void main () {
while (true) {
char c1 = getche();
char delimiter = getche();
char c2 = getche();
// Output end of line
std::cout << std::endl;
if (delimiter != '\t' || c1 == 'z' || c2 == 'z') break;
// Otherwise do something useful
}
}
enter
現在、シーケンスを入力した後にキーを押す必要はないことに注意してください。必要に応じて、もう1つのgetche()
呼び出しを追加し、charが32に等しいかどうかを確認できます(コードを入力してください)。