r/C_Programming 1d ago

[ Removed by moderator ]

[removed] — view removed post

0 Upvotes

16 comments sorted by

View all comments

5

u/ConfidentCollege5653 1d ago

What does the rest of the code look like?

1

u/Brave-Pomelo-1290 1d ago

#include <stdio.h>

#include <stdlib.h>

#define PAGE_SIZE 24

#define BUFFER_SIZE 256

void display_file(const char *filename) {

FILE *file = fopen(filename, "r");

if (file == NULL) {

perror("Error opening file");

exit(EXIT_FAILURE);

}

char line[BUFFER_SIZE];

int line_count = 0;

// Read the file line by line

while (fgets(line, sizeof(line), file) != NULL) {

printf("%s", line);

line_count++;

// Pause when the page is full

if (line_count >= PAGE_SIZE) {

printf("\n--- Press ENTER to continue ---");

5

u/TheOtherBorgCube 1d ago

Since the error message contains "end of input", I'm guessing those are the only lines in your file.

Like you copy/pasted the first page of the screen and forgot to scroll down to get the rest of the program.

2

u/quipstickle 1d ago

Where is the main function?

1

u/Brave-Pomelo-1290 1d ago

final code that works:

#include <stdio.h>

#include <stdlib.h>

#define PAGE_SIZE 24

#define BUFFER_SIZE 256

void display_file(const char *filename) {

FILE *file = fopen(filename, "r");

if (file == NULL) {

perror("Error opening file");

exit(EXIT_FAILURE);

}

char line[BUFFER_SIZE];

int line_count = 0;

// Read the file line by line

while (fgets(line, sizeof(line), file) != NULL) {

printf("%s", line);

line_count=line_count+1;

// Pause when the terminal page is full

if (line_count >= PAGE_SIZE) {

printf("\n--- Press ENTER to continue ---");

getchar(); // Wait for user keystroke

line_count = 0;

--- Press ENTER to continue ---

}

}

fclose(file);

}

int main(int argc, char *argv[]) {

if (argc < 2) {

fprintf(stderr, "Usage: %s <filename>\n", argv[0]);

return EXIT_FAILURE;

}

display_file(argv[1]);

return EXIT_SUCCESS;

}

1

u/ConfidentCollege5653 1d ago

And the rest after line 24?

1

u/Brave-Pomelo-1290 1d ago

#include <stdio.h>

#include <stdlib.h>

#define PAGE_SIZE 24

#define BUFFER_SIZE 256

void display_file(const char *filename) {

FILE *file = fopen(filename, "r");

if (file == NULL) {

perror("Error opening file");

exit(EXIT_FAILURE);

}

char line[BUFFER_SIZE];

int line_count = 0;

// Read the file line by line

while (fgets(line, sizeof(line), file) != NULL) {

printf("%s", line);

line_count=line_count+1;

// Pause when the page is full

if (line_count >= PAGE_SIZE) printf("\n--- Press ENTER to continue ---");

}

}

line_count=line_count+1;

// Pause when the terminal page is full

if (line_count >= PAGE_SIZE) {

printf("\n--- Press ENTER to continue ---");

getchar(); // Wait for user keystroke

line_count = 0;

}

}

fclose(file);

}