私は最近、いくつかの基本的なコマンドライン プログラムを書いています (この夏の間、スキルを磨き続けたいと思ってprintf
います) scanf
。私は素晴らしい C プログラマーではなく、printf
/scanf
とその不安定性 (またはさらに悪いことにfgets
、その同類) に入らなければならないことは、私を快適な環境に置いているわけではありません (この理由から、私は が大好きNSLog
で、その快適なデフォルトを使用しています)名前空間とその自動NSString
およびNSObject
解析)。
しかし、残念なことに、NSLog には対応する関数がなく、多くの余分な「ジャンク」(時間、関数名など、最後に改行を伴う) が出力され、多くの目的が無効になります。私の使用では。そこで、私は別の種類のプログラミング演習に腰を下ろし、自分のニーズを満たす printf と scanf を置き換える関数を作成することにしました。
NSInput.h
そして出来上がり、 2 つの関数を含む独自のファイルを思いつきました:NSPrint()
とNSScan()
. これら 2 つの関数は、printf と scanf をモデルにしていますが、handle もモデル化していNSString
ます。私はここで神聖な名前空間を踏んでいることを知っていますが、抵抗できませんでした (IFPrint
そして、IFScan
ただひどく聞こえます!)。
現在、動作するコード (ここでソースを見つけることができます) があることを本当に嬉しく思いますが、それが効率的でないことはわかっています (しかし、驚いたことに、Xcode 4 の LLDBNSPrint
よりも数倍効率的です。printf
しかし、それは論外です)。機能をより良く、より効率的にする方法についてアドバイスが必要です。NSScan
たとえば、受信した を に変換しva_list
、NSPointerArray
を使用NSScanner
してフォーマットと入力文字列をスキャンするので、改善の余地がたくさんあることがわかります。
基本的に、私が知りたいのは、私が犯した明らかな間違いで、修正できるものと修正する必要があるものはありますか? 私が見逃した大きなものはありますか?甘やかされて、 and の使用に戻る必要がprintf
ありscanf
ますか? 教えてください、私はここで入力を探しています (しゃれは意図されていません!)...
前もって感謝します!