ショッピングモール  


【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板1こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.3011

kbhitについて
投稿者---チェリーC(2004/11/22 10:31:20)


以下はエディット内に点を打ち込んでいくプログラムなのですが、
_kbhit()の部分がうまくいきません。
kbhit()の部分で何かキーを読み込むとフラグをfalseにしてwhile文から
抜け出せると思ったのですが、どこがおかしいのでしょうか?

while(hi<1000 && m_goflg==true){
        
        for(i=0;i<5000000;i++){
            if(_kbhit()){
                m_goflg=false;
                break;
            }
        }
        xg += gox;
        yg += goy;
        if(xg<=0 || xg>=200){
            gox*=-1;
            switch(rand()%2){
            case 0:goy+=1;break;
            case 1:goy-=1;break;
            };
        }
        else if(yg<=0 || yg>=200){
            goy*=-1;
            switch(rand()%2){
            case 0:gox+=1;break;
            case 1:gox-=1;break;
            };
            
        }
        pDC->SetPixel(int(xg),int(yg),RGB(255,0,0));
        hi++;
    }


環境はwin2000,VC++6.0です。



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:kbhitについて 3012 momiji 2004/11/22 10:40:39
<子記事> Re:kbhitについて 3031 REE 2004/11/24 14:55:11


No.3012

Re:kbhitについて
投稿者---momiji(2004/11/22 10:40:39)


break は直近のループから抜けます。
なのでこの場合、forから抜けることになります。


この投稿にコメントする

削除パスワード

No.3030

Re:kbhitについて
投稿者---チェリーC(2004/11/24 13:56:08)


>break は直近のループから抜けます。
>なのでこの場合、forから抜けることになります。

for文から抜ける前にフラグをFALSEにしているので
これでよいと思うのですがいけないのでしょうか?


この投稿にコメントする

削除パスワード

No.3031

Re:kbhitについて
投稿者---REE(2004/11/24 14:55:11)


>以下はエディット内に点を打ち込んでいくプログラムなのですが、
>_kbhit()の部分がうまくいきません。

どううまくいかないのですか?

>kbhit()の部分で何かキーを読み込むとフラグをfalseにしてwhile文から
>抜け出せると思ったのですが、どこがおかしいのでしょうか?

キーを押した後、1つだけ点を打って後で抜け出せるように見えます。



この投稿にコメントする

削除パスワード

No.3033

Re:kbhitについて
投稿者---チェリーC(2004/11/24 16:15:43)


>どううまくいかないのですか?

おそらくキー入力を認識していないため
if文内の処理を実行していないと思うのですが・・・

>キーを押した後、1つだけ点を打って後で抜け出せるように見えます。

抜け出せさえすればよいのですが、それすらもできません



この投稿にコメントする

削除パスワード

No.3034

Re:kbhitについて
投稿者---REE(2004/11/24 16:25:54)


>おそらくキー入力を認識していないため
>if文内の処理を実行していないと思うのですが・・・

この関数はコンソールアプリでしか使えないみたいですね。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity