--- exercises/107_files2.zig 2024-06-17 10:11:53.651439869 +0200 +++ answers/107_files2.zig 2024-06-17 10:21:50.700671057 +0200 @@ -4,17 +4,17 @@ // - create a file {project_root}/output/zigling.txt // with content `It's zigling time!`(18 byte total) // -// Now there's no point in writing to a file if we don't read from it, am I right? -// Let's write a program to read the content of the file that we just created. +// Now there no point in writing to a file if we don't read from it am I right? +// let's write a program to read the content of the file that we just created. // // I am assuming that you've created the appropriate files for this to work. // -// Alright, bud, lean in close. Here's the game plan. +// Alright, bud, lean in close here's the game plan. // - First, we open the {project_root}/output/ directory // - Secondly, we open file `zigling.txt` in that directory -// - Then, we initalize an array of characters with all letter 'A', and print it -// - After that, we read the content of the file into the array -// - Finally, we print out the content we just read +// - then, we initalize an array of characters with all letter 'A', and print it +// - After that, we read the content of the file to the array +// - Finally, we print out the read content const std = @import("std"); @@ -30,23 +30,23 @@ const file = try output_dir.openFile("zigling.txt", .{}); defer file.close(); - // initalize an array of u8 with all letter 'A' - // we need to pick the size of the array, 64 seems like a good number + // initalize an array of u8 with all letter 'A'. + // we need to pick the size of the array, 64 seems like a good number. // fix the initalization below - var content = ['A']*64; + var content = [_]u8{'A'} ** 64; // this should print out : `AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA` std.debug.print("{s}\n", .{content}); // okay, seems like a threat of violence is not the answer in this case - // can you go here to find a way to read the content? + // can you go here to find a way to read the content ? // https://ziglang.org/documentation/master/std/#std.fs.File // hint: you might find two answers that are both vaild in this case - const bytes_read = zig_read_the_file_or_i_will_fight_you(&content); + const bytes_read = try file.read(&content); - // Woah, too screamy. I know you're excited for zigling time but tone it down a bit. - // Can you print only what we read from the file? + // Woah, too screamy, I know you're excited for zigling time but tone it down a bit + // Can you print only what we read from the file ? std.debug.print("Successfully Read {d} bytes: {s}\n", .{ bytes_read, - content, // change this line only + content[0..bytes_read], // change this line only }); }