我最近一直在写一些基本的命令行程序(我想在整个夏天保持我的技能),但是printf
我scanf
开始烦了。我不是一个出色的 C 程序员,不得不进入printf
/scanf
和他们的不稳定性(甚至更糟,fgets
以及他们的同类)并没有完全让我处于一个令人欣慰的环境中(正是因为这个原因,我喜欢NSLog
它的令人欣慰的默认设置命名空间及其自动NSString
和NSObject
解析)。
然而,令我失望的是,NSLog 没有对应的函数,并且打印了很多额外的“垃圾”(时间、函数名等,以及最后的换行符),这违背了很多目的在我使用它。所以我决定坐下来进行一种不同类型的编程练习并编写函数来替换 printf 和 scanf 以满足我的需求。
瞧,我想出了自己的NSInput.h
文件,其中包含两个函数:NSPrint()
和NSScan()
. 这两个函数在很大程度上模仿了 printf 和 scanf,但也处理了NSString
's。我知道我在这里踩到了神圣的名称空间,但我无法抗拒(IFPrint
而且IFScan
听起来很糟糕!)。
现在,虽然我很高兴我有工作代码(您可以在此处找到源代码),但我知道它效率不高(但令我惊讶的是,它比Xcode 4 中的 LLDB 下的NSPrint
效率高几倍,printf
但这不是重点)。我需要一些关于如何使功能更好、更高效的建议。NSScan
,例如,将va_list
它收到的转换为NSPointerArray
,并使用NSScanner
's 扫描格式和输入字符串,所以我知道还有很大的改进空间。
基本上,我想知道的是,我犯了哪些明显的错误可以而且应该改正?有什么我错过的大事吗?我应该被称为被宠坏并重新使用printf
andscanf
吗?请告诉我,我在这里寻找输入(双关语不是故意的!)...
提前致谢!