• ベストアンサー

push any key で終了する方法?

Cでプログラミングしています。 本当に基本的なことで申し訳ないのですが、 どうしても分からないので、 どなたかアドバイス又は ヒントをいただければ助かります。 printf("End of Program\n"); の後に、何かキーを押すとプログラムが終了するようにしたいのですが、現在では、どうしても 1文字入力してからリターンキーを押すという 2操作の方法しかプログラミングできません。 push any keyで終わるための関数について どなたかご教示お願いします。 scanf("%s",&ss); int ch = getchar(); exit(1)

質問者が選んだベストアンサー

  • ベストアンサー
  • qwer021
  • ベストアンサー率24% (70/281)
回答No.1

while(kbhit()==0){ } exit(1); 詳しくはkbhit()を調べてください

zico2
質問者

お礼

MFC7.0を使用しており、 conio.hをincludeすることで kbhitが使えたので、 一発でうまく行きました。 新しい関数を知ることができて、 また勉強になりました。 ありがとうございました。

その他の回答 (2)

  • akino4
  • ベストアンサー率18% (35/185)
回答No.3

kbhitで解決出来る環境ならkbhitのほうが楽でしょう(M$環境とか) が、kbhitがない環境もあるのでその時はべつの方法でやらなきゃならんです。 Cの標準ライブラリだけで組みたい場合はsetbufを呼び出して バッファリングをしないようにしてgetcharを呼び出す必要が ある環境が多いでしょう。 また、POSIX準拠でというならselect関数を利用するという手も有ります ほかにもあったかなぁ・・・

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.2

こんばんは printf("End of Program\n"); getch(); exit(1); で良いと思います。 push any keyで終わるための関数について という事はどういう事でしょうか? 何かキーを押したら終わるという事と理解して良いですか? それともこのメッセージを出さなくてはいけないのでしょうか?

zico2
質問者

お礼

ご教示ありがとうございます。 今まで、getchar()では駄目だったのですが、 getch()にすると kbhitと同様にうまく行きました。 MFCのヘルプでは、 getcharしか出てきませんが、 使用上は問題ないようです。 現在、両者の違いをネットで検索しています。 大変勉強になりました。 どうもありがとうございました。

関連するQ&A