- ベストアンサー
push any key で終了する方法?
Cでプログラミングしています。 本当に基本的なことで申し訳ないのですが、 どうしても分からないので、 どなたかアドバイス又は ヒントをいただければ助かります。 printf("End of Program\n"); の後に、何かキーを押すとプログラムが終了するようにしたいのですが、現在では、どうしても 1文字入力してからリターンキーを押すという 2操作の方法しかプログラミングできません。 push any keyで終わるための関数について どなたかご教示お願いします。 scanf("%s",&ss); int ch = getchar(); exit(1)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
while(kbhit()==0){ } exit(1); 詳しくはkbhit()を調べてください
その他の回答 (2)
- akino4
- ベストアンサー率18% (35/185)
kbhitで解決出来る環境ならkbhitのほうが楽でしょう(M$環境とか) が、kbhitがない環境もあるのでその時はべつの方法でやらなきゃならんです。 Cの標準ライブラリだけで組みたい場合はsetbufを呼び出して バッファリングをしないようにしてgetcharを呼び出す必要が ある環境が多いでしょう。 また、POSIX準拠でというならselect関数を利用するという手も有ります ほかにもあったかなぁ・・・
- arukamun
- ベストアンサー率35% (842/2394)
こんばんは printf("End of Program\n"); getch(); exit(1); で良いと思います。 push any keyで終わるための関数について という事はどういう事でしょうか? 何かキーを押したら終わるという事と理解して良いですか? それともこのメッセージを出さなくてはいけないのでしょうか?
お礼
ご教示ありがとうございます。 今まで、getchar()では駄目だったのですが、 getch()にすると kbhitと同様にうまく行きました。 MFCのヘルプでは、 getcharしか出てきませんが、 使用上は問題ないようです。 現在、両者の違いをネットで検索しています。 大変勉強になりました。 どうもありがとうございました。
お礼
MFC7.0を使用しており、 conio.hをincludeすることで kbhitが使えたので、 一発でうまく行きました。 新しい関数を知ることができて、 また勉強になりました。 ありがとうございました。