電子書籍の厳選無料作品が豊富!

初めましてC言語をMacOSXで勉強しております。独習Cというテキストを参考にしておりますが、conio.h ヘッダの getche() 関数を多用しております。OSXではこの関数を使う事ができませんが、それと同等な関数は用意されているのでしょうか。基本的な事で恐縮ですが、どうぞよろしくお願いいたします。
また、OSXでC言語を学習する上で他のコンパイラなどとの相違、注意が必要な部分などございましたらどうぞご教授ください。

A 回答 (2件)

conio.hは、Winodws系でのみ提供されているライブラリ関数ですので、Mac OS X(gcc)では提供されてません。


stdioかncursesとかで同じ関数を自作するか、書き換える必要があります。

Mac OS Xの特異なところは、
・Mach
・Objective-C
・Cocoa/Carbon
――などありますが、C言語処理系としてgccを採用してますから、Cの初級レベルでは、とくに他と変わるところはありません。

参考URL:http://www.wence.vandermeersch.org/gconio/

この回答への補足

有り難うございます。参考URLを拝見いたしました。ヘッダファイルを追加する作業は初めてなのですが、usr/include/以下にダウンロードした gconio.h を配置すれば include する事ができるようになる、ということですね。このように非標準のヘッダをどんどん追加してゆく事でこれから先何かトラブルなど生じるのでしょうか(例えば何かヘッダ同士で不具合が生じる?等、初心者ですので質問も的外れかもしれませんが)。

補足日時:2006/08/02 22:01
    • good
    • 0
この回答へのお礼

有り難うございました。実際にやってみまして、gconio.hがインクルードできることを確かめました。少しずつですが前進しつつありまして、嬉しく思っています。有り難うございました。

お礼日時:2006/08/10 14:59

本来ならncursesでというところなのですが、ncursesを使ってgetcheをエミュレートできるぐらいなら、入門書なんか読んでいませんよね。



有効な解決策はちょっと見つかりません。むしろ、このような非標準ライブラリに依存したコードを書くと、今回のような問題が発生するということを学習してください。(今回は質問者さんが悪いのではなく、「独習C」が悪いのです)

> また、OSXでC言語を学習する上で他のコンパイラなどとの相違、注意が必要な部分などございましたらどうぞご教授ください。

学習段階では、なるべく標準ライブラリのみを使いましょう。その後、OSXに特化したプログラムを書きたいときになって初めて、専用のライブラリを学習するとよいでしょう。最初から特定環境に依存してしまうと、つぶしがきかなくなります。
    • good
    • 0
この回答へのお礼

有り難うございました。getchar()のみを使い、教則本の意図からは離れていますがgetche()で表れてきた課題を色々と組んでみました。おかげでgetchar()の使い方に理解が深まったと思っています。マイナスに考えずにある物で(標準ライブラリ)最大限にやろうと思います。

お礼日時:2006/08/02 21:53

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