3

嗨,我想知道创建文件处理程序以从控制台读取和使用 scanf () 之间有什么区别?

4

1 回答 1

2

这两种方法风格不同。C 函数scanf 使用 C 字符串并以过程方式获取大量指针NSFileHandle 等人使用 Objective-C 字符串,倾向于通过指针返回单个值而不是多个值,并且是基于方法的。

选择取决于您,例如,如果您需要简单地从控制台读取数字,则使用scanf可能是更简单的选择 - 虽然您可以使用 Objective-C 类读取数字,但 C 函数在这里更直接。

如果使用 C 函数,您必须对有效指针、缓冲区溢出等进行所有通常的注意。

您可以将两者混合在相同的代码中,但是必须小心,因为它们每个都做(一些)自己的缓冲,因此交替它们可能会“丢失”您输入/重新排列输出。

如果您的问题是在 Objective-C 中没有scanf等效项,并且您希望在使用 Objective-C 类的其余 I/O 时使用它来解析一些输入,那么您可以将输入读取为字符串,然后使用sscanf(使用适当的C 和 Obj-C 类型之间的转换)来解析这些字符串。

HTH。

于 2013-10-24T18:06:49.090 回答