###前提・実現したいこと
ユーザーがエンターキーを押したら進むようにしたいです。
待機処理を含む処理の後に下記の関数をを20回ほど繰り返します。
待機処理が終わったあとに入力されたものだけを読み取りたいです。
今後の為に関数化したいので関数内で完結させて欲しいです。
###発生している問題・エラーメッセージ
エラーは出ませんが、バッファに入力が残ってしまっているために連打で処理が終わったあとにキーを押さなくても前にした入力で処理が進んでしまいます。
エラーメッセージ
###該当のソースコード
C言語
1#include <stdio.h> 2#include <Windows.h> 3 4void pptk(); 5 6int main() 7{ 8int i; 9for (i =0;i < 20;i++) 10{ 11Sleep(1000);printf("続けるにはエンターキーを押してください\n");pptk(); 12} 13printf("終了するにはエンターキーを押してください\n");pptk(); 14return 0; 15} 16 17 18void pptk() 19 20{ 21 do{ 22 char x = 0; 23 x = getch(); 24 }while(x != 13); 25/*ナル文字かEOFを入力*/ 26//while(getch() != 0); 27} 28
###試したこと
課題に対してアプローチしたこと:高校生のため、大学の先生や専門学校の先生に聞いてみましたが、うまくいきませんでした。fflushやrewindは効きませんでした。空読みはエンターキーも含めて読ませたいです。ナル文字かEOFなどをプログラムのほうで入れてそこまで読み込ませるというのは可能でしょうか。
!! 13でも上手くいきません・・・。
###補足情報(言語/FW/ツール等のバージョンなど)
VC++ 2015
回答2件
あなたの回答
tips
プレビュー