Я использую fopen в C для записи вывода в текстовый файл. Функция декларации (где ARRAY_SIZE
было определено ранее):fopen/fopen_s и запись в файлы
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);
}
Мои вопросы:
На компиляции с MVS2008 я получаю предупреждение: предупреждение C4996: «Еореп»: Эта функция или переменная может быть небезопасным. Вместо этого рассмотрите использование fopen_s. Я не вижу много информации о
fopen_s
, чтобы изменить свой код. Какие-либо предложения?Можно ли указать
fprintf
для ввода чисел с требуемой числовой точностью в файл? Если я используюlong double
, то я предполагаю, что мои ответы хороши до 15 цифр после десятичной точки. Я прав?
В fopen() нет ничего опасного, но некоторые люди в MS, похоже, потеряли коллективные мраморные функции над функциями, которые принимают строки с нулевым символом в качестве параметров. – 2010-04-04 17:04:02
Я считаю, что это все заговор Microsoft, чтобы заблокировать людей в программировании только для Windows. – stackptr