アプリ版:「スタンプのみでお礼する」機能のリリースについて

今自由課題でスロットのように数字を乱数で表示させて、Enterを押すと押したときの値を表示させたいです

しかし、今書いているやつだとなぜかスロットみたいに数字の表示ができません。

おそらくif文で一旦止まってしまっていると思うのですが、どこが悪いのか教えてください。


#include <stdio.h>
#include <stdlib.h>

int main(){

int a,b,c;

srand(time(NULL));

c = getchar();

b = rand()%6+1;

for(;;){

a = rand()%6+1;

printf("\033[H\033[J");

printf("%d",a);

if(getchar() == '\n'){

printf("あなたのサイコロの値は%dです!!\n",a);

break;

}else{

continue;

}

}

return 0;

}

A 回答 (1件)

端末からのキーボードからの入力は、1行単位でまとめてアプリケーションに送られることが多いです。


なので
if(getchar() == '\n'){
の行で、1行分入力されるまで止ってしまいます。

入力待ちをせず、入力が無くても先に進むような方法を使う必要があります。

どの方法がそうなのか、というのは、プラットフォームに依存します。
    • good
    • 0
この回答へのお礼

if文のところで入力されるまで止まっているのですか。

入力なくても次に進むやり方はプラットホームに依存と・・・・

端末使っている限り違う方法でする方がいいみたいですね。

回答ありがとうございます

お礼日時:2013/05/30 23:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!