- ベストアンサー
getch
c言語初心者です。 私はvisualc++ でキー入力待ちでgetch()をつかっていたのですが unix上ではエラーしてしまいます。 一応サイトなどで検索しているのですがなかなかみつかりません。 どなたか代わりになる、unix上でも使える関数を教えていただけませんか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
前回のアドバイスに追加です。 CursesライブラリとC言語の標準ライブラリの相性はあまりよくないので、思ったとおりに動かない場合があります。 私が経験した不具合点は以下のものです。 ・改行文字を出力してもバッファがフラッシュされない fflush()を利用することで対策 ・改行文字を出力しても次の行の先頭に位置づけてくれない \n\rを使うことで対策 これ以外もあるかもしれません。
その他の回答 (3)
- cyacya2000
- ベストアンサー率54% (39/71)
UNIXではCursesライブラリでgetch関数が提供されています。以下に例を示します。 #include <curses.h> : : int ch; : initscr();//ライブラリ初期化 cbreak();//行バッファリングを行わないようにする(今回必要か否かは不明) noecho();//タイプされたキーが画面に表示されないようにする(今回必要か否かは不明) refresh();//画面消去(今回必要か否かは不明) : : ch=getch();//タイプされた文字を返す : : endwin();//ライブラリの終了処理 } gccでコンパイルするときは gcc ファイル名 -lcurses となります。
- Yanch
- ベストアンサー率50% (114/225)
unix でも conio.h が使えるなら、getch()と似たような機能の関数がありますよ。
- hidebun
- ベストアンサー率50% (92/181)
stdio.hをインクルードして、getchar()ではできないでしょうか。
お礼
ありがとうございます。 参考にさせていただきます。
補足
まだライブラリの相性などが理解できるほどの知識もありあせん。 大変参考になりました。ありがとうございます。