FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

macでgetche()を使う方法

はじめに
macもC言語も勉強始めたばっかりのド素人です。
なんとかgetche()が使えるようにはなりましたが、
これの方法の安全性とか機能が再現率とか不明です!

それでもよければどうぞ。

OS:OS X yosemite
ver:10.10.3


【gconio.hで確認できた独習Cとの相違点】
[追記1]
過去問を作り直した結果,
ch = getche();
while(ch != "¥r") {
printf("%c",ch+1);
ch = getche();
}
上記コードでretuneキーの入力で¥r(もしくは\r)が帰っていないのか押しても終了できない。
chの入力文字がもと文字と+1された次の文字が同時に出力される。(aと入力したらabと出力)
という2つ事象を確認しました。
なので、独習Cの意図している事を完全再現できるわけではない様です。

[追記2]
getche()でreturnキーを入力した時、\nがが返されている様です。
なので独習Cで'¥r'の記載のところは'\n'と記載することで解決できました。)

[追記3] 2015/07/04
Xcodeでの編集ではファイルが見つかりませんとなり使えません。
ターミナルからgccでコンパイルした場合のみです。



ーーーーー途中まで雑記です、飛ばしてOKーーーーーーーーーーーーー
使用している独習Cは購入したのが10年くらい前なので第3版です。(今更やり始めた)
そのため付属CDのアプリが64bitOSに対応してなかったので、
Cコンパイラが使えればできんだろ!と思って、
objective−cを勉強しよう思って買ったMacBookAirで始めましたw
(↑まだ全然触れてない)

途中まで勉強した中での感想は
「独習C」はMacでの勉強に向いてない!…かもしれない…
理由はただ単にmacのCコンパイラの「gcc」に例題に多いgetche()を
使用するためのヘッダファイル conio.hがないから。(Win用らしい)
なので、付属CDのアプリが普通に使えるwizdowsユーザーであれば
Windowsでやったほうがスムーズに勉強できると思います。

私は途中までやってしまったし、机より譜面台に教科書開いて、
ソファーで膝の上にMacBookAir置いて勉強するこの環境をとても
気に入っているため、今更背中の痛くなる机に戻りたくなかった。

あと、getche()の代わりにgetchar()を使用していたが、
どうにも出力結果が汚いのでなんとかしたかったって理由で
なんとかしましたw

ちなみに下記の方法は、コンソールとかディレクトリ移動とか
ファイル移動とか昔ちょっとやったけどもう忘れた!、のでどうにか
GUIメインでできないか試行錯誤したらできた!って方法です。
勉強のために、俺はコンソールからcdしてecho(?)とかmvとかcp
しちゃうぜ!って人には向きません。
そうやるべき!って人にも向かないので、あらかじめご了承ください。
ーーーーーーーーーーーーここまで雑記ーーーーーーーーーーーーーー


さて、本題
macでgetche()を使う方法を簡潔に紹介。
画像とか使わないから読み解いて!

前提:Xcodeのインストール、gccの追加

方法はconio.hに代わりとなるヘッダファイルを追加する。

①まずWin用conio.hの代わりになるgconio.hを
↓のサイトのDownloadの項目のhereから落とす。
http://www.wence.vandermeersch.org/gconio/

②次にFinderで右上の検索にstdio.hを入力。
_stdio.hのファイルが出てきたらそれをクリック。
ウィンドウの下のバーにパスが表示されるので、
その中のincludeをダブルクリック。

③includeのフォルダに落としたgconio.hを入れる。

以上!

これで#includeによりgetche();が使えます。
(とりあえずコンパイルしてちょっと動く事を見ただけなので、
機能が必ずしも一致しているかは不明)
ちなみにこれで使えるようになったgetche()はreturnを入力する事なく、
文字を入力したら、即、動きます。
getchar()を使ってからちょっと違和感。

参考にしたページ
http://okwave.jp/qa/q2313653.html

スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

呑んべぇ

Author:呑んべぇ
プログラマを目指す呑んだくれ
就職するまで禁酒禁煙(飲み会を除く)
現在無職の29歳
2015/06/01開始

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。