私の問題は、ユーザーが端末で集計を押しているときに特別なことをしたいということです。私の最初のコードは次のように説明しています:getline()で可能なので、_getch()でkeyboards関数を使用する方法?
char buffer[100];
while (true)
{
std::cin.getline(buffer, 100); // do IMMEDIATELY something if 'tabulation' was used ?
}
私はどのようにすべての文字をチェックするのか尋ねましたか?私は試しました_getch();
while (true)
{
c = _getch();
if (c == '\t')
// do something special
else
std::cout << (char)c;
}
しかし、今、私は私ができるように私はgetline()
で入力しています何に矢印でキーを機能、デル、SUPPR、等...私はできません移動任意のスペシャルを使用することはできません
getline()
の途中で特別な中断を行う方法はありますか? _getch()
を別の方法で使用することはできますか? 私はまた、他のスレッドを(1つはgetline()
と、もう1つは_getch()
としてみましたが)スレッドで何ができるのか分かりません。
すべての特別な機能(矢印キー、del、supprなど)を '手動で'処理することは可能ですが、別の解決策を探しています。
いいえ、標準C++にはありません。それはOSと端末特有のものです。 –
stdinまたはscanfを使用してみませんか? – Gugg
'_getch'が返すことができる値を説明しているドキュメントの部分を読んだことがありますか?単一のキーコードを得るために '_getch'を2回呼び出す必要があるかもしれないことに気づいていますか? –