-PR-
解決済み

scanfについて

  • 困ってます
  • 質問No.72227
  • 閲覧数558
  • ありがとう数5
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 8% (5/58)

文字を取り込むときに、scanfなどでは、Enterきーを押さないと、文字の取り込みができないのですが、もし文字を打ち込んだ瞬間に(Enterキーを押さなくても)取り込める方法がありましたら、おしえてください。よろしくお願いします。

-たとえば-
#include<stdio.h>
    :
    :
scanf("%s",&a);
/*ここでEnterキーを押さないと文字を取り込めない*/
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル9

ベストアンサー率 15% (14/93)

getcheがつかえると思いますよ。

構文

#include <conio.h>
int getche(void);

解説

キーボードからエコー付きで文字を読み込みます。
getche は,キーボードから 1 文字読み込み,テキストウィンドウにエコーバックします。

戻り値

getche は,キーボードから読み込んだ文字を返します。
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル13

ベストアンサー率 37% (570/1525)

環境の指定が無いので答えにくいのですが…。

まず最初に、文字列入力に付いては“ここまで”という指定が必要な為enterによる区切りは必要だと思います。
文字入力(scanf()の"%c"やgetchar())の場合は可能性があります。

UNIX系の場合:
sttyでコンソールをrawモードにしておけばgetchar()でenterなし1文字入力できます。
ある種のUNIX(ネイティブ系ではOK、linuxでは未確認)ではsetbuf(stdin, NULL)を実行する事でgetchar()でenetrなし1文字入力可能です。

MS-DOS及びDOS窓16ビットの場合:
KeyBIOSを使った方が手っ取り早いので通常KeyBIOSを使います。
拡張ライブラリ関数getch()が利用可能なコンパイラならgetch()でもオッケーです。

DOS窓32ビットの場合:
getch()を使います。

Macの場合(MPWシェル):
最近のバージョンは使ったことが無いのですが、昔はsetbuf(stdin, NULL)の後にgetchar()すれば出来ました。

昔のDOS環境にはバッファリング無しの入力として標準エラー入力というものがあったのですがWindows上のDOS環境でサポートされているんでしょう? > 識者の方


このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ