我最近写了一些基本的命令行程序(我想保持我的技能在暑假期间),但是
然而,令我非常失望的是,NSLog没有对应的函数,并且打印了很多额外的“垃圾”(时间、函数名称等,以及结尾处的换行符),这使得我使用它的目的大大降低了。因此,我决定坐下来进行另一种类型的编程练习,编写函数来替换printf和scanf,以满足我的需求。
我自己创建了一个名为
现在,虽然我很高兴我有工作代码(您可以在此处找到源代码),但我知道它不够高效(尽管令我惊讶的是,在Xcode 4的LLDB下,
基本上,我想知道的是,我有没有犯任何明显的错误需要修正?我是否遗漏了什么重要的东西?我应该被称为被宠坏的孩子,回到使用printf和scanf吗?请告诉我,我在寻求意见(双关语不是故意的!)...
提前感谢!
printf
和scanf
开始让我感到烦恼。我不是一个出色的C程序员,必须使用printf
/scanf
及其不稳定性(甚至更糟糕的是fgets
等)并不能让我感到舒适(正因为如此,我喜欢NSLog
,它具有安慰人心的默认命名空间以及自动的NSString
和NSObject
解析)。然而,令我非常失望的是,NSLog没有对应的函数,并且打印了很多额外的“垃圾”(时间、函数名称等,以及结尾处的换行符),这使得我使用它的目的大大降低了。因此,我决定坐下来进行另一种类型的编程练习,编写函数来替换printf和scanf,以满足我的需求。
我自己创建了一个名为
NSInput.h
的文件,其中包含两个函数:NSPrint()
和NSScan()
。这两个函数的模型类似于printf和scanf,但也处理NSString
。我知道我在这里涉足了神圣的命名空间,但我无法抵制(IFPrint
和IFScan
听起来太糟糕了!)。现在,虽然我很高兴我有工作代码(您可以在此处找到源代码),但我知道它不够高效(尽管令我惊讶的是,在Xcode 4的LLDB下,
NSPrint
比printf
快几倍,但这不是重点)。我需要一些关于如何使函数更好、更高效的建议。例如,NSScan
将其收到的va_list
转换为NSPointerArray
,并使用NSScanner
扫描格式和输入字符串,所以我知道还有很大的改进空间。基本上,我想知道的是,我有没有犯任何明显的错误需要修正?我是否遗漏了什么重要的东西?我应该被称为被宠坏的孩子,回到使用printf和scanf吗?请告诉我,我在寻求意见(双关语不是故意的!)...
提前感谢!