Zig: stdio

A simple example of writing to stdout and reading from stdin.

const std = @import("std");
const builtin = @import("builtin");
const Io = std.Io;

pub fn main(init: std.process.Init) !void {
    const io = init.io;
    var buf: [40]u8 = undefined;
    var stdin = Io.File.stdin().reader(io, &buf);
    var stdout = Io.File.stdout().writer(io, &.{});
    try stdout.interface.print("Please enter a name: ", .{});
    while (true) {
        var name = try stdin.interface.takeDelimiter('\n') orelse break;
        name = @constCast(std.mem.trimEnd(u8, name, " \r"));
        if (name.len == 0) {
            break;
        }
        try stdout.interface.print("Hello {s}!\n", .{name});
    }
}