I'm using fopen in C to write the output to a text file. The function declaration is (where ARRAY_SIZE
has been defined earlier):
void create_out_file(char file_name[],long double *z1){
FILE *out;
int i;
if((out = fopen(file_name, "w+")) == NULL){
fprintf(stderr, "***> Open error on output file %s", file_name);
exit(-1);
}
for(i = 0; i < ARRAY_SIZE; i++)
fprintf(out, "%.16Le\n", z1[i]);
fclose(out);
}
My questions:
On compilation with MVS2008 I get the warning: warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. I haven't see much information on
fopen_s
so that I can change my code. Any suggestions?Can one instruct
fprintf
to write numbers at a desired numerical precision to a file? If I'm usinglong double
then I assume that my answers are good till 15 digits after the decimal point. Am I right?