我正在关注 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/