zig でファイルを読み取り、行ごとに実行するにはどうすればよいですか?
見つけましたos.File.openRead
が、そう書いてあるので古いようですcontainer 'std.os' has no member called 'File'
。
ベストアンサー1
std.io.reader.readUntilDelimiterOrEof
std.io.reader
行ごとに読み取ることができます。通常、ファイルなどのリーダーは、そのreader()
メソッドを呼び出すことによって取得します。たとえば、次のようになります。
var file = try std.fs.cwd().openFile("foo.txt", .{});
defer file.close();
var buf_reader = std.io.bufferedReader(file.reader());
var in_stream = buf_reader.reader();
var buf: [1024]u8 = undefined;
while (try in_stream.readUntilDelimiterOrEof(&buf, '\n')) |line| {
// do something with line...
}
これはstd.io.bufferedReader
必須ではありませんが、パフォーマンスを向上させるために推奨されます。