gpt4 book ai didi

ios - 在 swift 代码中使用 fscanf() 函数

转载 作者:行者123 更新时间:2023-11-30 14:05:40 25 4
gpt4 key购买 nike

在 objective-c 中,我使用fscanf从文件读取流并将值分配给变量:

int count;
char type[5];
fscanf(myFile, “count is %d, type is %4s ”, &count, type)

我想在 swift 代码中做同样的事情,我尝试过:

//ERROR: Type annotation missing in pattern
//What type should I use for `count`?
var count
//ERROR: consecutive statement on a line must be separated by ‘;’
var type[5] : char
fscanf(myFile, “count is %d, type is %4s ”, &count, type)

但是我得到了上面显示的编译器错误。在 swift 中使用 fscanf 的正确方法是什么?

如果您知道任何快速方法来实现相同的目标(不使用 fscanf),那就太棒了!

最佳答案

我建议您使用Foundation框架解决方案来读取/写入文件数据。用于读取我在应用程序中用于将文件流式传输到 NSData 的文件内容的示例代码:

if let fileHandle = NSFileHandle(forReadingAtPath: "path/to/file") {
fileHandle.seekToFileOffset(0)
var data = fileHandle.readDataOfLength(5)
var chars = [UInt8](count: 5, repeatedValue: 0)
data.getBytes(&chars, length: 5)
fileHandle.closeFile()
}

如果您需要从特定位置的文件读取 Int64 数据:

if let fileHandle = NSFileHandle(forReadingAtPath: "path/to/file") {
fileHandle.seekToFileOffset(0)
var data = fileHandle.readDataOfLength(500)
var intFetched: Int64 = 0
let location = 100 // start at 101st character of file
data.getBytes(&intFetched, range: NSMakeRange(location, 8))
println(intFetched.littleEndian)
fileHandle.closeFile()
}

关于ios - 在 swift 代码中使用 fscanf() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32441688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com