You can never skip parameters in C language -- they are always required. In this case num is the maximum number of characters that can be put into the buffer. If the newline is encountered in the file before that then the newline will appear in the buffer. If the newline does not appear in the file then the buffer will not contain a newline.
How are A, B, and C declared? You really don't even need them, just reuse buffer
Are those lines really 1,000,000 characters??? What's a whapping big line. Reduce the size of buf to a more reasonable number.
FILE *ptr_file;
char buf[256];
ptr_file =fopen(filename,"r");
fgets(buf, sizeof(buf), ptr_file);
fgets(buf, sizeof(buf), ptr_file);
fgets(buf, sizeof(buf), ptr_file);
fscanf(ptr_file,"%s %f %s %f %s %f %s %f %s %f %s %f %s %f %s",Date1,&Load1,QCLoad,&Tamb1,QCTamb,&TOT1,QCTOT,&WindA1,QCWindA1,&WindB1,QCWindB1,&WindC1,QCWindC1,&Tamb2,QCTamb2);