• ベストアンサー

getch

c言語初心者です。 私はvisualc++ でキー入力待ちでgetch()をつかっていたのですが unix上ではエラーしてしまいます。 一応サイトなどで検索しているのですがなかなかみつかりません。 どなたか代わりになる、unix上でも使える関数を教えていただけませんか?

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

  • ベストアンサー
回答No.4

前回のアドバイスに追加です。 CursesライブラリとC言語の標準ライブラリの相性はあまりよくないので、思ったとおりに動かない場合があります。 私が経験した不具合点は以下のものです。 ・改行文字を出力してもバッファがフラッシュされない  fflush()を利用することで対策 ・改行文字を出力しても次の行の先頭に位置づけてくれない  \n\rを使うことで対策 これ以外もあるかもしれません。

armpoint
質問者

補足

まだライブラリの相性などが理解できるほどの知識もありあせん。 大変参考になりました。ありがとうございます。

その他の回答 (3)

回答No.3

UNIXではCursesライブラリでgetch関数が提供されています。以下に例を示します。 #include <curses.h> : : int ch; : initscr();//ライブラリ初期化 cbreak();//行バッファリングを行わないようにする(今回必要か否かは不明) noecho();//タイプされたキーが画面に表示されないようにする(今回必要か否かは不明) refresh();//画面消去(今回必要か否かは不明) : : ch=getch();//タイプされた文字を返す : : endwin();//ライブラリの終了処理 } gccでコンパイルするときは gcc ファイル名 -lcurses となります。

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.2

unix でも conio.h が使えるなら、getch()と似たような機能の関数がありますよ。

  • hidebun
  • ベストアンサー率50% (92/181)
回答No.1

stdio.hをインクルードして、getchar()ではできないでしょうか。

armpoint
質問者

お礼

ありがとうございます。 参考にさせていただきます。

関連するQ&A

専門家に質問してみよう