アプリ版:「スタンプのみでお礼する」機能のリリースについて

[test.c]
#include<stdio.h>
#include<windows.h>
#pragma comment(lib, "User32.lib")
int main(void){
 while(1){
  if(GetAsyncKeyState(VK_NUMPAD7) || GetAsyncKeyState('7'))
   printf("\x1b[2J7");
 }
 return 0;
}
を実行し、キーボードを 7 -> 8 -> Enter と押すと、
画面がクリアされ、7が表示されるので、正常に動作するのですが、
Ctrl C で実行終了すると、
78Enterがコマンド入力されたことになり、

7^C
C:\Users\7459cu7\OneDrive\program>78
'78' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

と出てきます。
このような勝手なコマンド入力を防ぐにはどうすればよいですか?

A 回答 (1件)

検証はしていませんけども……



>キーボードを 7 -> 8 -> Enter と押すと、

この標準入力からの入力内容はどなたがクリアしているので?
誰もクリアしていないからコマンドプロンプトに戻った時に「先行キー入力」として処理されているのではないですかね?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!