[-] 93zm4@programming.dev 3 points 1 week ago

Any chance you are running this on an OS with a "new line" character that isn't "\n"? Windows for example could be "\r\n". I tried on Linux and it worked, although I only grabbed the necessary parts, so if something else is breaking, I can't say. Or perhaps I misunderstood the issue altogether. Here is what I see:

The function:

# code block
int print_file(char* buffer) {
	printf("print_file\n");

	int line_num = 1;

	char* line = strtok(buffer, "\n");

	while(line != NULL) {
		printf("%4d\t%s\n", line_num, line);
		line = strtok(NULL, "\n");
		line_num++;
	}
	return 0;	
}

And the output:

# code block
test file: test.txt 
hello 123 123 123 
asdf asdf asdf 
0oijf0w0j s0w0wfjwef 
0wefjfjwefjkwejijiowefjo

output:
   1	hello 123 123 123 
   2	asdf asdf asdf 
   3	0oijf0w0j s0w0wfjwef 
   4	0wefjfjwefjkwejijiowefjo
count: 4 lines | 0 words | 82 characters

93zm4

joined 8 months ago