В файл записываются непонятные символы - C (СИ)
Формулировка задачи:
Здравствуйте. Имеется функция записи в файл.
Но вместо числа записывается непонятный символ.
int save(int *a, int *b) { FILE *fp; if ((fp = fopen("save.txt", "w")) == NULL) { printf("Error opening file!\n"); exit(1); } fputs("Save results: \n", fp); fputs("a = ", fp); fwrite(&a, 1, 1, fp); return 0; }
Решение задачи: «В файл записываются непонятные символы»
textual
Листинг программы
fprintf(fp,"%d",*a);
Объяснение кода листинга программы
С точки зрения контроля доступа, этот код может быть потенциально опасным, поскольку он записывает в файл указатель на переменную без указания размера этой переменной. Это может привести к записи в файл неопределенного количества данных, что может привести к переполнению буфера и, в конечном итоге, к уязвимости буфера. Тем не менее, код, который вы предоставили, выполняет следующие действия:
*a
обращается к значению переменнойa
.fp
- это файловый дескриптор, который указывает на файл, открытый для записи.fprintf
- это функция, которая записывает форматированную строку в файл.%d
- это спецификатор формата, который указывает на то, что следующий аргумент должен быть преобразован в целое число и записан в файл.*
%d` означает, что форматированная строка будет содержать только символ
%d, который будет заменен на значение переменной
a`.fprintf(fp,
%d,*a);
записывает форматированную строку в файл.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д