the.bay.news

How to print each line from a string

programming.dev
How to print each line from a string
I’m trying to make some sort of simple console text editor program to get better with C. I’m having trouble with what I thought would be a somewhat simple task: How do I get each line from my char* buffer, which contains all of my text, so I can output each line, including empty lines, with the correct line number in front of it. I tried several different ways already, but none have stuck. I tried strtok(), which is what is currently pushed to my repo, and it ignores whitespace. I tried strchr() but did not have the slightest idea how that function worked and got an infinite loop. I tried doing my own function to create an array of lines but that lead to a segmentation fault which was not fixed by mallocing the array. I am at a loss here, I’m not sure what I can do. Here is the repo: https://codeberg.org/Mister_Bones/txt-ed [https://codeberg.org/Mister_Bones/txt-ed] Here is the offending code: c // Print contents of file int print_file(char* buffer) { // Print a new line printf("\n"); // Print each line with line number // Set first line int line_num = 1; // Get individual line from buffer char* line = strtok(buffer, "\n"); // Loop through and print lines // TODO: Don't ignore whitespace while (line != NULL) { printf("%4d\t%s\n", line_num, line); line = strtok(NULL, "\n"); line_num++; } return 0; }

0 comments

Sign in to join the discussion — your thebay.events account works here.

No comments yet.