diff options
| author | Chris Boesch <chrboesch@noreply.codeberg.org> | 2026-04-03 13:35:56 +0200 |
|---|---|---|
| committer | Chris Boesch <chrboesch@noreply.codeberg.org> | 2026-04-03 13:35:56 +0200 |
| commit | e0259f43a726f61da14686de802021fcdb9aacd0 (patch) | |
| tree | 57359102e5e898289b91ada2d65ca742ec118c8b /exercises/107_files2.zig | |
| parent | ffde357f303e7459a12cfe4b785ae9e8ef9ebe30 (diff) | |
Insert space for additional async exercises
Diffstat (limited to 'exercises/107_files2.zig')
| -rw-r--r-- | exercises/107_files2.zig | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/exercises/107_files2.zig b/exercises/107_files2.zig deleted file mode 100644 index c363086..0000000 --- a/exercises/107_files2.zig +++ /dev/null @@ -1,61 +0,0 @@ -// -// Prerequisite : -// - exercise/106_files.zig, or -// - create a file {project_root}/output/zigling.txt -// with content `It's zigling time!`(18 bytes 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. -// -// I am assuming that you've created the appropriate files for this to work. -// -// 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 initialize 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 -// -// Note: For simplicity, we read byte-by-byte without buffering. -// In real applications, you'd typically use a buffer for better -// performance. We'll learn about buffered I/O in a later exercise. - -const std = @import("std"); - -pub fn main(init: std.process.Init) !void { - const io = init.io; - - // Get the current working directory - const cwd = std.Io.Dir.cwd(); - - // try to open ./output assuming you did your 106_files exercise - var output_dir = try cwd.openDir(io, "output", .{}); - defer output_dir.close(io); - - // try to open the file - const file = try output_dir.openFile(io, "zigling.txt", .{}); - defer file.close(io); - - // initialize 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 initialization below - var content = ['A']*64; - // this should print out : `AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA` - std.debug.print("{s}\n", .{content}); - - var file_reader = file.reader(io, &.{}); - const reader = &file_reader.interface; - - // 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? - // https://ziglang.org/documentation/master/std/#std.Io.Reader - // hint: look for a method that reads into a slice - const bytes_read = zig_read_the_file_or_i_will_fight_you(&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? - std.debug.print("Successfully Read {d} bytes: {s}\n", .{ - bytes_read, - content, // change this line only - }); -} |
