#Type errors

1 messages · Page 1 of 1 (latest)

final raven
#
const std = @import("std");

pub fn main() !void {
    var gpa = std.heap.GeneralPurposeAllocator(.{}){};
    const allocator = gpa.allocator();
    
    var dynaarr = std.ArrayList(u32).init(allocator);
    defer dynaarr.deinit(); // Освобождаем память после работы

    var buffer: [100]u8 = undefined;
    const reader = std.io.getStdIn().reader();

    std.debug.print("Введите числа через пробел:\n", .{});
    const input = reader.readUntilDelimiterOrEof(&buffer, '\n') catch |err| {
        std.debug.print("Error reading input: {}\n", .{err});
        return;
    };

    if (input) |length| {
        var it = std.mem.tokenize(u8, buffer[0..length], " ");
        while (it.next()) |num_str| {
            const num = try std.fmt.parseInt(u32, num_str, 10);
            try dynaarr.append(num);
        }
    }

    std.debug.print("\nМассив: {any}\n", .{dynaarr.items});
}```
```~
λ cd ziga-zadanki; zig build-exe ziga-massiv.zig
ziga-massiv.zig:20:49: error: expected type 'usize', found '[]u8'
        var it = std.mem.tokenize(u8, buffer[0..length], " ");
                                                ^~~~~~
referenced by:
    callMain: /usr/lib/zig/std/start.zig:524:32
    callMainWithArgs: /usr/lib/zig/std/start.zig:482:12
    remaining reference traces hidden; use '-freference-trace' to see all reference traces```
#

I have 0 idea how to fix that
I'm a noob

potent cedar
#

length is still a string, not a number, you need to convert it into an integer before you can use it as a slice index

#

try using std.fmt.parseInt