C言語関係掲示板

過去ログ

No.530.改行せずに入力するには

[戻る] [ホームページ]
No.4235

改行せずに入力するには
投稿者---しいぺい(2003/01/07 21:41:32)


scanfなどで入力した場合、必ず改行される思うのですが
改行しないように入力したいのです。
例えば、
入力:1
入力:2
入力:3
ではなくて、
入力:1 入力:2 入力:3
という風に入力を行っていきたいのですが
どのようにすればいいでしょうか?


No.4237

Re:改行せずに入力するには
投稿者---Zzz...(2003/01/07 22:21:24)


getcheを使ったらいかがでしょう?
ちなみにconio.hのincludeが必要です

No.4239

Re:改行せずに入力するには
投稿者---しいぺい(2003/01/07 23:42:53)


>getcheを使ったらいかがでしょう?
>ちなみにconio.hのincludeが必要です
ありがとうございます。ただ、この場合1つの文字か数字しか
入力できないのですが、それ以上の桁数の場合にも対応する
にはどうすればいいでしょうか?色々みてみたんですが
やはり改行しないで入力する方法を思いついたり、見つける事が
できなかったものですから。

No.4240

Re:改行せずに入力するには
投稿者---Zzz...(2003/01/08 00:02:21)


>この場合1つの文字か数字しか
>入力できないのですが、それ以上の桁数の場合にも対応する
>にはどうすればいいでしょうか?
桁数が決まっているなら
#define NUM /*桁数*/
char    ch[NUM];

for(i = 0; i < NUM; i++)
    ch[i] = getche();

但し、これだと例外処理など全く考えてないので、工夫が必要ですね
やはり、素直にscanf等を使ったほうがいいかも

No.4248

Re:改行せずに入力するには
投稿者---しいぺい(2003/01/08 15:25:25)


>但し、これだと例外処理など全く考えてないので、工夫が必要ですね
>やはり、素直にscanf等を使ったほうがいいかも
ありがとうございます。
なんとかがんばってみます。


No.4389

Re:改行せずに入力するには
投稿者---ABC(2003/01/15 17:34:07)


もうおそいかもしれませんが、、、、

エスケープシーケンスを利用したらどうでしょうか?

こんな感じです。
  int a;
  printf("a = ");
  scanf("%d",a);
  printf("\x1b[5C");/* カーソルを5桁右に移動する*/
  printf("\x1bM");  /* カーソルを一行上げる。*/
  printf("a = ");
  scanf("%d",a);