How to read all content (at once) from a text file in C

2 Answers

0 votes
#include <stdio.h>
#include <stdlib.h>
 
long file_size(FILE *fp);
  
int main(void)
{
    FILE *fp;
    char *buf;
     
    fp = fopen("e:/test.txt", "r");
    long fsize = file_size(fp);
    buf = (char*) malloc (sizeof(char) * fsize);
    if (buf == NULL) {
        fputs("Memory error", stderr); 
        exit (1);
    }
    fread(buf, 1, fsize, fp);
    puts(buf);
    
    fclose(fp);
    free(buf);
    
    return 0;
}

long file_size(FILE *fp)
{
    fseek (fp , 0 , SEEK_END);
    long fsize = ftell(fp);
    fseek(fp, 0, SEEK_SET); 
    
    return fsize;
}
  
/*
run:

askljdf aslkd fjalsk dfjas ldf

*/

 



answered Dec 22, 2015 by avibootz
0 votes
#include <stdio.h>
 
long file_size(FILE *fp);
  
int main(void)
{
    FILE *fp;
    char buf[1024];
     
    fp = fopen("e:/test.txt", "r");
    fread(buf, 1, file_size(fp), fp);
    puts(buf);
    
    fclose(fp);
    
    return 0;
}

long file_size(FILE *fp)
{
    fseek (fp , 0 , SEEK_END);
    long fsize = ftell(fp);
    fseek(fp, 0, SEEK_SET); 
    
    return fsize;
}
  
/*
run:

askljdf aslkd fjalsk dfjas ldf

*/

 



answered Dec 22, 2015 by avibootz

Related questions

2 answers 327 views
1 answer 168 views
1 answer 553 views
1 answer 174 views
1 answer 213 views
1 answer 487 views
1 answer 158 views
158 views asked Jul 8, 2020 by avibootz
...