zig でファイルを読み取るにはどうすればいいですか? 質問する

zig でファイルを読み取るにはどうすればいいですか? 質問する

zig でファイルを読み取り、行ごとに実行するにはどうすればよいですか?

見つけましたos.File.openReadが、そう書いてあるので古いようですcontainer 'std.os' has no member called 'File'

ベストアンサー1

std.io.reader.readUntilDelimiterOrEofstd.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必須ではありませんが、パフォーマンスを向上させるために推奨されます。

おすすめ記事