This should work. Although it only displays 400 chars at a time.
Code:
int main(void)
{
FILE * log_file = NULL;
char log_file_name[20], *buffer, *current_pos, holder;
int log, fsize, counter;
while(log_file == NULL) {
printf("Enter the name of the log to be played.\n");
gets(log_file_name);
log_file = fopen(log_file_name, "rb");
if(!log_file)
printf("Invalid filename.\n");
}
fseek(log_file, 0, 2);
fsize = ftell(log_file);
fseek(log_file, 0, 0);
buffer = (char *)malloc(fsize);
if(!buffer) {
printf("Out of memory!\n");
return 1;
}
fread(buffer, fsize, 1, log_file);
fclose(log_file);
for(current_pos = buffer, counter = 0; counter < (fsize/400)+((fsize%400)?1:0); counter++, current_pos+=400) {
holder = current_pos[400];
current_pos[400] = '\0';
printf("%s", current_pos);
current_pos[400] = holder;
getch();
}
printf("Log completed. Thank you for watching. Come back next time.\n");
free(buffer);
return 0;
}