zig - 当前在 Zig 中获取用户输入的方法

标签 zig

我正在关注 this blog post在 Zig 的“comptime”上。

以下行不再在 Zig 中编译 0.6.0 .

const user_input = try io.readLineSlice(buf[0..]);

下面是完整的功能:
fn ask_user() !i64 {
    var buf: [10]u8 = undefined;
    std.debug.warn("A number please: ");
    const user_input = try io.readLineSlice(buf[0..]);
    return fmt.parseInt(i64, user_input, 10);
}

当前版本(获取用户输入)中的等效项是什么?

最佳答案

您可以使用方法 readUntilDelimiterOrEof stdin 反而:

const stdin = std.io.getStdIn().reader();
pub fn readUntilDelimiterOrEof(self: @TypeOf(stdin), buf: []u8, delimiter: u8) !?[]u8
所以,代码可以是:

fn ask_user() !i64 {
    const stdin = std.io.getStdIn().reader();
    const stdout = std.io.getStdOut().writer();

    var buf: [10]u8 = undefined;
    
    try stdout.print("A number please: ", .{});

    if (try stdin.readUntilDelimiterOrEof(buf[0..], '\n')) |user_input| {
        return std.fmt.parseInt(i64, user_input, 10);
    } else {
        return @as(i64, 0);
    }
}
另见:Zig 0.7.0 documentation .

关于zig - 当前在 Zig 中获取用户输入的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62018241/

相关文章:

zig - zig cc 是否公开链接器 (ld)?

c - 如何将 Zig String 文字传递给 C

zig - 使用 Zig 进行简单的日志分析

zig - 如何将流或写入器参数传递给 Zig 中的函数?

windows - 在 Windows 上编译用 Zig 编写的 CPython 扩展

zig - 如何将 bin 文件作为 Zig 构建脚本的一部分进行 objcopy

memory-leaks - 使用 ArrayLists 构建切片时如何避免内存泄漏

具有多个 exe 和 lib 的 zig 项目

zig - 当执行简单的变量赋值更改函数行为时,我在 Zig 中使用 ArrayList 是否错误?

windows - 使用 Zig 编译器构建 C 代码时如何包含 (msvc) libc