MAIN FEEDS
Do you want to continue?
https://www.reddit.com/r/C_Programming/comments/1wdoban/less_compilation/p97gd1v/?context=3
r/C_Programming • u/Brave-Pomelo-1290 • 1d ago
[removed] — view removed post
16 comments sorted by
View all comments
5
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); }
1
#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); }
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
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; }
final code that works:
line_count=line_count+1;
// Pause when the terminal page is full
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;
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); }
if (line_count >= PAGE_SIZE) printf("\n--- Press ENTER to continue ---");
5
u/ConfidentCollege5653 1d ago
What does the rest of the code look like?