Console Applicationでキー入力を取得するには – プログラミング – Home

通知
すべてクリア

[解決済] Console Applicationでキー入力を取得するには


ヒヨコ
 ヒヨコ
(@ヒヨコ)
ゲスト
結合: 22年前
投稿: 5
Topic starter  

2年以上振りに、C++でプログラム(というかアマグラム)を書こうとしています。
Console Application (Win-XP VC++ 6.0)を用いています。

char ch;
ch = NULL;
do {
cin >> ch;
// do something;
} while (ch != 'x');

とすると、ENTERを押さないとキー入力となりませんが、これをMFCなどで使える
OnKeyDownのようにENTERを押さないでも認識することは可能でしょうか?

あくまでも標準C++の中で行いたいのですが・・・

宜しくご教授お願いします。


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

標準C++の範囲では無理じゃないかしら。


返信引用
ヒヨコ
 ヒヨコ
(@ヒヨコ)
ゲスト
結合: 22年前
投稿: 5
Topic starter  

ご無沙汰しております。
やはりそうですか・・・・
それならばそれで諦めがつきます。
ありがとうございました。


返信引用
Ameria
 Ameria
(@Ameria)
ゲスト
結合: 19年前
投稿: 1
 

もうみてませんか?
Vcならできるんですがね~


返信引用
RAPT
 RAPT
(@RAPT)
ゲスト
結合: 22年前
投稿: 310
 

環境依存でいいなら、_kbhit() とかありますが。。
# 非標準C++ が必ずしも MFC のことを指している訳ではないと
# 分かっているなら余計な事でしょうが。


返信引用
ヒヨコ
 ヒヨコ
(@ヒヨコ)
ゲスト
結合: 22年前
投稿: 5
Topic starter  

Ameria様、RAPT様、ありがとうございます。
やはり環境非依存で、と思いました。
C++を実行できる環境がVC++しか持ち合わせ無いので、VC++を使っています。
Borland C++でも良いのですが、IDEが無いので、初心者は初歩的な文法ミスをIDEの中で
発見できないので、使いにくく思います。
ところで、一つ疑問に思ったのですが、確か以前RubyはRubyのシステム内でマルチスレ
ッドを実現していると聞きました。そして、RubyはCで全部書かれていると思います。
環境非依存で、そのようなことは可能なのでしょうか?
私にとって、タイマー割り込みも、キー割り込みも同じレベルのように思うのですが、
これは誤解でしょうか?


返信引用
REE
 REE
(@REE)
ゲスト
結合: 23年前
投稿: 240
 

標準C++では、マルチスレッドも割り込みも無理です。
このことは、そのRubyも環境依存のコードを含んでいることを示しています。

実際、C/C++では標準かどうかは、ソースレベルでのみ意味のあることです。
コンパイルした時点で、ターゲットCPUに対する環境に依存してしまいます。


返信引用
ヒヨコ
 ヒヨコ
(@ヒヨコ)
ゲスト
結合: 22年前
投稿: 5
Topic starter  

REE様、

早速のご返答ありがとうございました。やはりそうでしたか。
標準C++で我々が扱えるタイマー関係のものといえば、乱数発生で馴染みのある、
unsigned int now = (unsigned int)timer(NULL)
などぐらいでしたので、これでどうしてタイマー割り込みが行えるのか? と、思ってい
ました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました